blanc-logger
Version:
Advanced Winston logger for NestJS & TypeORM with structured logging.
30 lines (29 loc) • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setLoggingConfig = exports.LOGGING_CONFIG = void 0;
const fs = require("fs");
const yaml = require("js-yaml");
const path = require("path");
/** 기본 로그 설정값을 정의 */
const DEFAULT_LOGGING_CONFIG = {
LOG_DIR: 'logs',
CONSOLE_LOG_LEVEL: 'info',
FILE_LOG_LEVEL: 'error',
ROTATION_DAYS: '30d',
MAX_FILE_SIZE: '20m',
};
/** 지정된 YAML 파일에서 사용자 로그 설정을 로드하여 부분 설정 객체를 반환 */
function loadUserConfig(configFileName = 'logger-config.yaml') {
const configPath = path.resolve(process.cwd(), configFileName);
if (!fs.existsSync(configPath))
return {};
const fileContents = fs.readFileSync(configPath, 'utf8');
return yaml.load(fileContents);
}
/** 기본 설정과 사용자 설정을 병합하여 최종 로그 설정을 생성 */
exports.LOGGING_CONFIG = Object.assign(Object.assign({}, DEFAULT_LOGGING_CONFIG), loadUserConfig());
/** 전달받은 사용자 설정과 기본 설정을 병합하여 로그 설정을 업데이트 */
function setLoggingConfig(userConfig) {
exports.LOGGING_CONFIG = Object.assign(Object.assign({}, DEFAULT_LOGGING_CONFIG), userConfig);
}
exports.setLoggingConfig = setLoggingConfig;