1 /* Copyright (c) 2019 AT&T Intellectual Property. #
\r
3 # Licensed under the Apache License, Version 2.0 (the "License"); #
\r
4 # you may not use this file except in compliance with the License. #
\r
5 # You may obtain a copy of the License at #
\r
7 # http://www.apache.org/licenses/LICENSE-2.0 #
\r
9 # Unless required by applicable law or agreed to in writing, software #
\r
10 # distributed under the License is distributed on an "AS IS" BASIS, #
\r
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
\r
12 # See the License for the specific language governing permissions and #
\r
13 # limitations under the License. #
\r
14 ##############################################################################*/
\r
17 const { createLogger, format, transports, addColors } = require('winston');
\r
18 const { combine, timestamp, label, simple, colorize, splat, printf } = format;
\r
19 const cluster = require('cluster');
\r
21 const getLabel = function () {
\r
22 if (cluster.isMaster) return 'OTF-master';
\r
23 return 'OTF-worker-' + cluster.worker.id;
\r
49 addColors(config.colors);
\r
51 const logFormat = printf(info => {
\r
52 return `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`;
\r
55 const logger = module.exports = createLogger({
\r
56 levels: config.levels,
\r
58 label({ label: getLabel() }),
\r
66 new transports.Console()
\r
71 module.exports = logger;
\r