// Copyright 2023 Cisco Systems, Inc. // // 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. import { LOG_LEVELS } from "./ConsoleLogger.js"; declare const BUILD_TARGET: string | undefined; export default class FancyLogger { static async getLogger() { if (typeof BUILD_TARGET === 'undefined' || BUILD_TARGET !== 'web') { const winston = await import('winston'); const formats = [winston.format.colorize(), winston.format.simple()]; return winston.createLogger({ levels: LOG_LEVELS, format: winston.format.json(), transports: [ new winston.transports.Console({ format: winston.format.combine(...formats) }) ], }); } else { throw new Error(`FancyLogger can't be used when BUILD_TARGET is ${BUILD_TARGET}`); } } }