pandora
Version:
73 lines (53 loc) • 1.86 kB
text/typescript
;
import {DefaultLoggerManager, ILogger} from 'pandora-service-logger';
import {join} from 'path';
import {EOL} from 'os';
const ConsoleLogger = require('egg-logger').EggConsoleLogger;
export const consoleLogger = new ConsoleLogger({
level: 'INFO',
});
let daemonLogger = null;
export function getDaemonLogger(): ILogger {
const {logger: loggerConfig} = lazyGetGlobalConfig();
if (!daemonLogger) {
const loggerManager = DefaultLoggerManager.getInstance();
daemonLogger = loggerManager.createLogger('daemon', {
...loggerConfig.daemonLogger,
dir: join(loggerConfig.logsDir, 'pandorajs')
});
}
return daemonLogger;
}
export function getDaemonStdoutLogPath() {
const {logger: loggerConfig} = lazyGetGlobalConfig();
return join(loggerConfig.logsDir, 'pandorajs/daemon_std.log');
}
export function getDaemonLogPath() {
const {logger: loggerConfig} = lazyGetGlobalConfig();
return join(loggerConfig.logsDir, 'pandorajs/daemon.log');
}
export function createAppLogger(appName, logName) {
const {logger: loggerConfig} = lazyGetGlobalConfig();
const loggerManager = DefaultLoggerManager.getInstance();
return loggerManager.createLogger(logName, {
...loggerConfig.appLogger,
dir: join(loggerConfig.logsDir, appName)
});
}
export function getAppLogPath(appName, logName) {
const {logger: loggerConfig} = lazyGetGlobalConfig();
return join(loggerConfig.logsDir, appName, logName + '.log');
}
const eolReg = new RegExp(EOL + '$');
export function removeEOL(str: string): string {
eolReg.lastIndex = 0;
return str.replace(eolReg, '');
}
/**
* Prevent cycle dependencies
* @return {any}
*/
function lazyGetGlobalConfig () {
const globalConfigProcessor = require('./GlobalConfigProcessor').GlobalConfigProcessor.getInstance();
return globalConfigProcessor.getAllProperties();
}