@hestjs/logger
Version:
HestJS Logger - A powerful logging solution based on Pino
82 lines • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TEST_CONFIG = exports.PRODUCTION_CONFIG = exports.DEVELOPMENT_CONFIG = exports.DEFAULT_CONFIG = void 0;
exports.getEnvironmentConfig = getEnvironmentConfig;
exports.createConfigFromEnv = createConfigFromEnv;
exports.mergeConfig = mergeConfig;
const types_1 = require("./types");
/**
* 默认日志配置
*/
exports.DEFAULT_CONFIG = {
level: types_1.LogLevel.INFO,
timestamp: true,
name: "HestJS",
messageKey: "msg",
errorKey: "err",
base: {
pid: process.pid,
hostname: require("os").hostname(),
},
};
/**
* 开发环境配置
*/
exports.DEVELOPMENT_CONFIG = {
level: types_1.LogLevel.DEBUG,
// 不在这里设置 transport,让 factory 使用 transports.ts 中的配置
};
/**
* 生产环境配置
*/
exports.PRODUCTION_CONFIG = {
level: types_1.LogLevel.INFO,
redact: ["password", "token", "authorization", "cookie"],
};
/**
* 测试环境配置
*/
exports.TEST_CONFIG = {
level: types_1.LogLevel.WARN,
};
/**
* 根据环境获取配置
*/
function getEnvironmentConfig(env) {
const environment = env || process.env.NODE_ENV || "development";
switch (environment) {
case "production":
case "prod":
return exports.PRODUCTION_CONFIG;
case "test":
case "testing":
return exports.TEST_CONFIG;
case "development":
case "dev":
default:
return exports.DEVELOPMENT_CONFIG;
}
}
/**
* 从环境变量创建配置
*/
function createConfigFromEnv() {
const env = process.env;
const config = {};
if (env.LOG_LEVEL) {
config.level = env.LOG_LEVEL;
}
if (env.LOG_NAME) {
config.name = env.LOG_NAME;
}
return config;
}
/**
* 合并配置
*/
function mergeConfig(...configs) {
return configs.reduce((merged, config) => ({ ...merged, ...config }), {
...exports.DEFAULT_CONFIG,
});
}
//# sourceMappingURL=config.js.map