1/** 2 * Copyright © Magento, Inc. All rights reserved. 3 * See COPYING.txt for license details. 4 */ 5 6define([ 7 './logger', 8 './entry-factory', 9 './console-output-handler', 10 './formatter', 11 './message-pool', 12 './levels-pool', 13 'Magento_Ui/js/lib/core/storage/local', 14 'underscore', 15 './logger-utils' 16], function (Logger, entryFactory, ConsoleHandler, Formatter, messagePoll, levelsPoll, storage, _, LoggerUtils) { 17 'use strict'; 18 19 var STORAGE_NAMESPACE = 'CONSOLE_LOGGER'; 20 21 /** 22 * Singleton Logger's sub-class instance of which is configured to display its 23 * messages to the console. It also provides the support of predefined messages 24 * and persists its display level. 25 */ 26 function ConsoleLogger() { 27 var formatter = new Formatter(), 28 consoleHandler = new ConsoleHandler(formatter), 29 savedLevel = storage.get(STORAGE_NAMESPACE), 30 utils = new LoggerUtils(this); 31 32 Logger.call(this, consoleHandler, entryFactory); 33 34 if (savedLevel) { 35 this.displayLevel_ = savedLevel; 36 } 37 38 this.utils = utils; 39 this.messages = messagePoll; 40 this.levels = levelsPoll.getLevels(); 41 } 42 43 _.extend(ConsoleLogger, Logger); 44 45 ConsoleLogger.prototype = Object.create(Logger.prototype); 46 ConsoleLogger.prototype.constructor = ConsoleLogger; 47 48 /** 49 * Overrides parent method to save the provided display level. 50 * 51 * @override 52 */ 53 ConsoleLogger.prototype.setDisplayLevel = function (level) { 54 Logger.prototype.setDisplayLevel.call(this, level); 55 56 storage.set(STORAGE_NAMESPACE, level); 57 }; 58 59 /** 60 * Adds the support of predefined messages. 61 * 62 * @protected 63 * @override 64 */ 65 ConsoleLogger.prototype.createEntry_ = function (message, level, data) { 66 var code; 67 68 if (messagePoll.hasMessage(message)) { 69 data = data || {}; 70 code = message; 71 message = messagePoll.getMessage(code); 72 73 data.messageCode = code; 74 } 75 76 return Logger.prototype.createEntry_.call(this, message, level, data); 77 }; 78 79 return new ConsoleLogger(); 80});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.