UNPKG

3.68 kBJavaScriptView Raw
1'use strict';
2var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6 return c > 3 && r && Object.defineProperty(target, key, r), r;
7};
8var __metadata = (this && this.__metadata) || function (k, v) {
9 if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10};
11Object.defineProperty(exports, "__esModule", { value: true });
12const Winston = require("winston");
13const logger_1 = require("./config/logger");
14const _ = require("lodash");
15const path = require("path");
16const fs = require("fs-extra-promise");
17const typescript_ioc_1 = require("typescript-ioc");
18const configuration_1 = require("./configuration");
19const util_1 = require("util");
20let Logger = class Logger {
21 constructor() {
22 this.winston = this.instantiateLogger(this.config.gateway.logger);
23 this.config.on('gateway-update', (gateway) => {
24 if (this.winston && this.isDebugEnabled()) {
25 this.debug('The system logger is restarting...');
26 }
27 this.winston = this.instantiateLogger(gateway.logger);
28 });
29 }
30 instantiateLogger(config) {
31 this.level = (config ? logger_1.LogLevel[config.level] : logger_1.LogLevel.info);
32 const options = {
33 level: logger_1.LogLevel[this.level],
34 transports: []
35 };
36 if (config && config.console) {
37 options.transports.push(new Winston.transports.Console(config.console));
38 }
39 if (config && config.file) {
40 config.file = _.omit(config.file, 'outputDir');
41 let outputDir = config.file.outputDir || './logs';
42 if (_.startsWith(outputDir, '.')) {
43 outputDir = path.join(this.config.rootPath, outputDir);
44 }
45 const fileName = (process.env.processNumber ? `gateway-${process.env.processNumber}.log` : `gateway.log`);
46 config.file['filename'] = path.join(outputDir, fileName);
47 fs.ensureDirSync(path.dirname(config.file['filename']));
48 options.transports.push(new Winston.transports.File(config.file));
49 }
50 return new Winston.Logger(options);
51 }
52 isDebugEnabled() {
53 return this.level === logger_1.LogLevel.debug;
54 }
55 isInfoEnabled() {
56 return this.level >= logger_1.LogLevel.info;
57 }
58 isWarnEnabled() {
59 return this.level >= logger_1.LogLevel.warn;
60 }
61 isErrorEnabled() {
62 return this.level >= logger_1.LogLevel.error;
63 }
64 debug(...args) {
65 this.winston.debug.apply(this, arguments);
66 }
67 info(...args) {
68 this.winston.info.apply(this, arguments);
69 }
70 warn(...args) {
71 this.winston.warn.apply(this, arguments);
72 }
73 error(...args) {
74 this.winston.error.apply(this, arguments);
75 }
76 inspectObject(object) {
77 util_1.inspect(object, { colors: true, depth: 15 });
78 }
79};
80__decorate([
81 typescript_ioc_1.Inject,
82 __metadata("design:type", configuration_1.Configuration)
83], Logger.prototype, "config", void 0);
84Logger = __decorate([
85 typescript_ioc_1.Singleton,
86 typescript_ioc_1.AutoWired,
87 __metadata("design:paramtypes", [])
88], Logger);
89exports.Logger = Logger;
90//# sourceMappingURL=logger.js.map
\No newline at end of file