diff --git a/fems-api/src/services/permission.service.js b/fems-api/src/services/permission.service.js index 4c3205a..04cfdc0 100644 --- a/fems-api/src/services/permission.service.js +++ b/fems-api/src/services/permission.service.js @@ -1,7 +1,7 @@ // src/services/permission.service.js const { Role, UserRole, User } = require("../models"); const redis = require("../config/redis"); -const logger = require("../utils/logger"); +const logger = require("./config/logger"); class PermissionService { constructor() { diff --git a/fems-realtime-api/src/app.js b/fems-realtime-api/src/app.js index 55a745e..e8af1df 100644 --- a/fems-realtime-api/src/app.js +++ b/fems-realtime-api/src/app.js @@ -6,7 +6,8 @@ const MainBackendService = require("./services/mainBackend.service"); const MQTTService = require("./services/mqtt.service"); const SensorDataModel = require("./models/SensorData"); const createDataController = require("./controllers/data.controller"); -const logger = require("./utils/logger"); +// 다른 서비스나 컨트롤러 파일들 +const logger = require("./config/logger"); const config = require("./config/config"); async function bootstrap() { diff --git a/fems-realtime-api/src/middleware/apiKey.middleware.js b/fems-realtime-api/src/middleware/apiKey.middleware.js index 1e41615..3ef2edd 100644 --- a/fems-realtime-api/src/middleware/apiKey.middleware.js +++ b/fems-realtime-api/src/middleware/apiKey.middleware.js @@ -1,5 +1,5 @@ // fems-realtime-api/src/middleware/apiKey.middleware.js -const logger = require("../utils/logger"); +const logger = require("./config/logger"); const apiKeyAuth = async (req, res, next) => { const apiKey = req.header("X-API-Key"); diff --git a/fems-realtime-api/src/services/mainBackend.service.js b/fems-realtime-api/src/services/mainBackend.service.js index c121302..52ba818 100644 --- a/fems-realtime-api/src/services/mainBackend.service.js +++ b/fems-realtime-api/src/services/mainBackend.service.js @@ -1,6 +1,6 @@ // fems-realtime-api/src/services/mainBackend.service.js const axios = require("axios"); -const logger = require("../utils/logger"); +const logger = require("./config/logger"); class MainBackendService { constructor(redis, baseURL, adminApiKey) { @@ -16,21 +16,21 @@ class MainBackendService { async checkSubscription(companyId) { try { // Redis에서 캐시된 구독 상태 확인 - const cached = await this.redis.get(`subscription:${companyId}`); + const cached = await this.redis.get(`contracts:${companyId}`); if (cached) { return JSON.parse(cached); } // 메인 백엔드에서 구독 상태 조회 const response = await this.client.get( - `/api/v1/admin/subscription/companies/${companyId}/subscription/status` + `/api/v1/admin/contracts/companies/${companyId}/subscription/status` ); const status = response.data; // 구독 상태 캐싱 (1시간) await this.redis.set( - `subscription:${companyId}`, + `contracts:${companyId}`, JSON.stringify(status), "EX", 3600 diff --git a/fems-realtime-api/src/services/mqtt.service.js b/fems-realtime-api/src/services/mqtt.service.js index d534bcd..73c37f8 100644 --- a/fems-realtime-api/src/services/mqtt.service.js +++ b/fems-realtime-api/src/services/mqtt.service.js @@ -1,6 +1,6 @@ // fems-realtime-api/src/services/mqtt.service.js const mqtt = require("mqtt"); -const logger = require("../utils/logger"); +const logger = require("./config/logger"); class MQTTService { constructor(mainBackend, sensorData, redis, brokerUrl, options) { diff --git a/fems-realtime-api/src/utils/logger.js b/fems-realtime-api/src/utils/logger.js deleted file mode 100644 index 0c1fd11..0000000 --- a/fems-realtime-api/src/utils/logger.js +++ /dev/null @@ -1,59 +0,0 @@ -// src/utils/logger.js -const winston = require("winston"); -const { createLogger, format, transports } = winston; -const { combine, timestamp, printf, colorize } = format; - -// 로그 포맷 정의 -const logFormat = printf(({ level, message, timestamp, ...metadata }) => { - let msg = `${timestamp} [${level}] : ${message}`; - - if (Object.keys(metadata).length > 0) { - msg += JSON.stringify(metadata); - } - - return msg; -}); - -// 로거 생성 -const logger = createLogger({ - format: combine(timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), logFormat), - transports: [ - // 콘솔 출력 - new transports.Console({ - format: combine(colorize(), logFormat), - }), - // 에러 로그 파일 - new transports.File({ - filename: "logs/error.log", - level: "error", - }), - // 전체 로그 파일 - new transports.File({ - filename: "logs/combined.log", - }), - ], -}); - -// 감사 로그를 위한 별도 로거 -const auditLogger = createLogger({ - format: combine( - timestamp(), - printf(({ message, timestamp, ...metadata }) => { - return JSON.stringify({ - timestamp, - ...message, - ...metadata, - }); - }) - ), - transports: [ - new transports.File({ - filename: "logs/audit.log", - }), - ], -}); - -module.exports = { - logger, - auditLogger, -};