X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=it%2Fotf.git;a=blobdiff_plain;f=otf-frontend%2Fserver%2Fsrc%2Flib%2Flogger.js;fp=otf-frontend%2Fserver%2Fsrc%2Flib%2Flogger.js;h=492794876103a374309193966e58960cb2fdc189;hp=0000000000000000000000000000000000000000;hb=14f6f95c84a4a1fa8774190db4a03fd0214ec55f;hpb=f49bd1efeaaddd4891c1f329b18d8cfb28b3e75b diff --git a/otf-frontend/server/src/lib/logger.js b/otf-frontend/server/src/lib/logger.js new file mode 100644 index 0000000..4927948 --- /dev/null +++ b/otf-frontend/server/src/lib/logger.js @@ -0,0 +1,71 @@ +/* Copyright (c) 2019 AT&T Intellectual Property. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +##############################################################################*/ + + +const { createLogger, format, transports, addColors } = require('winston'); +const { combine, timestamp, label, simple, colorize, splat, printf } = format; +const cluster = require('cluster'); + +const getLabel = function () { + if (cluster.isMaster) return 'OTF-master'; + return 'OTF-worker-' + cluster.worker.id; +}; + +const config = { + levels: { + error: 0, + debug: 1, + warn: 2, + data: 3, + info: 4, + verbose: 5, + silly: 6, + custom: 7 + }, + colors: { + error: 'red', + debug: 'blue', + warn: 'yellow', + data: 'grey', + info: 'green', + verbose: 'cyan', + silly: 'magenta', + custom: 'yellow' + } +}; + +addColors(config.colors); + +const logFormat = printf(info => { + return `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`; +}); + +const logger = module.exports = createLogger({ + levels: config.levels, + format: combine( + label({ label: getLabel() }), + timestamp(), + splat(), + colorize(), + simple(), + logFormat + ), + transports: [ + new transports.Console() + ], + level: 'custom' +}); + +module.exports = logger;