cicero-core
Version:
Cicero Core - implementation of Accord Protocol Template Specification
47 lines (41 loc) • 1.41 kB
JavaScript
/*
* 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 winston = require('winston');
const fs = require('fs');
const env = process.env.NODE_ENV || 'development';
const tsFormat = () => (new Date()).toLocaleTimeString();
const logDir = 'log';
// Create the log directory if it does not exist
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir);
}
let logger = new(winston.Logger)({
transports: [
new(winston.transports.Console)({
colorize: true,
timestamp: tsFormat,
level: 'info'
}),
new(winston.transports.File)({
name: 'logs-file',
filename: `${logDir}/trace.log`,
level: env === 'development' ? 'debug' : 'info'
})
]
});
logger.entry = logger.debug;
logger.exit = logger.debug;
logger.log('info', 'Logging initialized.', new Date());
module.exports = logger;