UNPKG

@zowe/imperative

Version:
113 lines 4.6 kB
"use strict"; /* * This program and the accompanying materials are made available under the terms of the * Eclipse Public License v2.0 which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-v20.html * * SPDX-License-Identifier: EPL-2.0 * * Copyright Contributors to the Zowe Project. * */ Object.defineProperty(exports, "__esModule", { value: true }); exports.LoggerConfigBuilder = void 0; const path = require("path"); const os = require("os"); class LoggerConfigBuilder { /** * Build a fully qualified directory to a log file - defaults to the users home directory - Imperative * does NOT use this as the home is set by the CLI configuration document. * @param {string} name - name of the file to append to fully qualified directory */ static buildFullLogFile(name) { return path.normalize(os.homedir() + name); } /** * Returns the constant values defined within the LoggerConfigBuilder for this config object * @return {IConfigLogging} - default object built */ static getDefaultIConfigLogging() { const config = { log4jsConfig: { appenders: {}, categories: {}, } }; return config; } /** * Returns the constant values defined within the LoggerConfigBuilder for this config object * @return {IConfigLogging} - default object built */ static addConsoleAppender(config, key, categoryName = key, logLevel) { config.log4jsConfig.appenders[key] = { type: LoggerConfigBuilder.DEFAULT_LOG_TYPE_CONSOLE, layout: { type: LoggerConfigBuilder.DEFAULT_LOG_TYPE_PAT, pattern: LoggerConfigBuilder.DEFAULT_COLOR_LAYOUT, }, }; config.log4jsConfig.categories[categoryName] = { appenders: [key], level: logLevel ? logLevel : LoggerConfigBuilder.getDefaultLogLevel(), }; return config; } /** * Returns the constant values defined within the LoggerConfigBuilder for this config object * @return {IConfigLogging} - default object built */ static addFileAppender(config, key, categoryName = key, filename = LoggerConfigBuilder.buildFullLogFile(LoggerConfigBuilder.getDefaultFileName(key)), logLevel) { config.log4jsConfig.appenders[key] = { filename, type: LoggerConfigBuilder.DEFAULT_LOG_TYPE_FILE_SYNC, maxLogSize: LoggerConfigBuilder.DEFAULT_LOG_FILE_MAX_SIZE, backups: LoggerConfigBuilder.DEFAULT_LOG_FILE_BACKUPS, layout: { type: LoggerConfigBuilder.DEFAULT_LOG_TYPE_PAT, pattern: LoggerConfigBuilder.DEFAULT_LOG_LAYOUT, }, }; config.log4jsConfig.categories[categoryName] = { appenders: [key], level: logLevel ? logLevel : LoggerConfigBuilder.getDefaultLogLevel(), }; return config; } /** * Returns the log file name that will be used * @return {string} - the default file name for the log file */ static getDefaultFileName(name) { return path.posix.sep + path.posix.join(LoggerConfigBuilder.DEFAULT_LOGS_DIR, name + LoggerConfigBuilder.DEFAULT_LOG_FILE_EXT); } /** * Returns the log level that will be used if not overridden * @returns {string} - the default log level */ static getDefaultLogLevel() { return process.env.NODE_ENV === "development" ? "DEBUG" : "WARN"; } } exports.LoggerConfigBuilder = LoggerConfigBuilder; LoggerConfigBuilder.DEFAULT_LANG = "en"; LoggerConfigBuilder.DEFAULT_LOG_TYPE_CONSOLE = "console"; LoggerConfigBuilder.DEFAULT_LOG_TYPE_PAT = "pattern"; LoggerConfigBuilder.DEFAULT_LOG_LAYOUT = "[%d{yyyy/MM/dd} %d{hh:mm:ss.SSS}] [%p] %m"; LoggerConfigBuilder.DEFAULT_COLOR_LAYOUT = "%[" + LoggerConfigBuilder.DEFAULT_LOG_LAYOUT + "%]"; LoggerConfigBuilder.DEFAULT_LOG_TYPE_FILE_SYNC = "fileSync"; LoggerConfigBuilder.DEFAULT_BACKEND = "NONE"; LoggerConfigBuilder.DEFAULT = "default"; /** * @deprecated Use `DEFAULT_LOGS_DIR` instead. */ LoggerConfigBuilder.DEFAULT_LOG_DIR = path.posix.sep; /** * @deprecated Use `DEFAULT_LOGS_DIR` instead. */ LoggerConfigBuilder.DEFAULT_LOG_FILE_DIR = "logs" + path.posix.sep; LoggerConfigBuilder.DEFAULT_LOGS_DIR = "logs"; LoggerConfigBuilder.DEFAULT_LOG_FILE_EXT = ".log"; LoggerConfigBuilder.DEFAULT_LOG_FILE_MAX_SIZE = 10000000; // 10MB log size LoggerConfigBuilder.DEFAULT_LOG_FILE_BACKUPS = 5; //# sourceMappingURL=LoggerConfigBuilder.js.map