From 47483d1ae404fac2965e0c442130fb8bf8c8a55b Mon Sep 17 00:00:00 2001 From: Oren Me Date: Fri, 10 Nov 2017 11:14:06 +0200 Subject: [PATCH 1/9] feat: expose logger API set to ERROR level by default expose API to set and get log level and get log level enums expose convenience method to set logger level via global window param `window.PLAYKIT_LOG_LEVEL` update to JS-Logger V1.4 --- src/k-provider/multi-request-builder.js | 4 +- src/k-provider/ovp/ovp-provider.js | 31 ++++++++++++++- src/k-provider/ovp/provider-parser.js | 4 +- src/util/logger.js | 52 +++++++++++++++++-------- yarn.lock | 4 +- 5 files changed, 71 insertions(+), 24 deletions(-) diff --git a/src/k-provider/multi-request-builder.js b/src/k-provider/multi-request-builder.js index 88fc933a..48519da7 100644 --- a/src/k-provider/multi-request-builder.js +++ b/src/k-provider/multi-request-builder.js @@ -1,11 +1,11 @@ //@flow import RequestBuilder from './request-builder' import ServiceResult from './base-service-result' -import Logger from "../util/logger"; +import getLogger from "../util/logger"; /** * @constant */ -const logger = Logger.get("OvpProvider"); +const logger = getLogger("OvpProvider"); /** * Multi Request builder diff --git a/src/k-provider/ovp/ovp-provider.js b/src/k-provider/ovp/ovp-provider.js index 0f63f5cb..ab8ddda7 100644 --- a/src/k-provider/ovp/ovp-provider.js +++ b/src/k-provider/ovp/ovp-provider.js @@ -1,5 +1,5 @@ //@flow -import Logger from '../../util/logger' +import getLogger, {setLogLevel, getLogLevel, LOG_LEVEL as LogLevel} from '../../util/logger' import ProviderParser from './provider-parser' import DataLoaderManager from './loaders/data-loader-manager' import MediaEntryLoader from './loaders/media-entry-loader' @@ -11,7 +11,7 @@ import MediaSources from '../../entities/media-sources' /** * @constant */ -const logger = Logger.get("OvpProvider"); +const logger = getLogger("OvpProvider"); type playerConfig = { id: string, @@ -184,6 +184,33 @@ export class OvpProvider { return !!entryId || !!uiConfId; } + /** + * Get the log levels + * @returns {Object} - The log levels of the player. + * @public + */ + get LogLevel(): { [level: string]: Object } { + return LogLevel; + } + + /** + * get the current log level + * @param {?string} name - the logger name + * @returns {string} - the log level + */ + getLogLevel(name?: string): string { + return getLogLevel(name); + } + + /** + * sets the logger level + * @param {string} level - the log level + * @param {?string} name - the logger name + * @returns {void} + */ + setLogLevel(level: string, name?: string){ + setLogLevel(level, name); + } } export default OvpProvider; diff --git a/src/k-provider/ovp/provider-parser.js b/src/k-provider/ovp/provider-parser.js index e1721cfc..12467b55 100644 --- a/src/k-provider/ovp/provider-parser.js +++ b/src/k-provider/ovp/provider-parser.js @@ -5,7 +5,7 @@ import KalturaMetadataListResponse from './response-types/kaltura-metadata-list- import PlaySourceUrlBuilder from "./play-source-url-builder" import XmlParser from '../xml-parser' import {MediaEntryTypes, EntryTypes, MediaTypes, DrmScheme} from '../enums' -import Logger from '../../util/logger' +import getLogger from '../../util/logger' import Configuration from './config' import {MediaFormats} from '../../entities/media-format' import MediaEntry from '../../entities/media-entry' @@ -17,7 +17,7 @@ const config = Configuration.get(); /** * @constant */ -const logger = Logger.get("OvpProvider"); +const logger = getLogger("OvpProvider"); /** * @constant diff --git a/src/util/logger.js b/src/util/logger.js index 022c93f7..429b2af5 100644 --- a/src/util/logger.js +++ b/src/util/logger.js @@ -1,20 +1,6 @@ //@flow import * as JsLogger from 'js-logger'; -class LoggerFactory { - constructor(options?: Object) { - JsLogger.useDefaults(options || {}); - } - - get(name?: string) { - if (!name) { - return JsLogger; - } - return JsLogger.get(name); - } -} - -let Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG}); const LOG_LEVEL: { [level: string]: Object } = { "DEBUG": JsLogger.DEBUG, "INFO": JsLogger.INFO, @@ -24,7 +10,41 @@ const LOG_LEVEL: { [level: string]: Object } = { "OFF": JsLogger.OFF }; -export default Logger; -export {LOG_LEVEL}; +JsLogger.useDefaults({defaultLevel: JsLogger.ERROR}); +if (window.PLAYKIT_LOG_LEVEL && LOG_LEVEL[window.PLAYKIT_LOG_LEVEL]) { + JsLogger.useDefaults({defaultLevel: LOG_LEVEL[window.PLAYKIT_LOG_LEVEL]}); +} + +/** + * get a logger + * @param {?string} name - the logger name + * @returns {Object} - the logger class + */ +function getLogger(name?: string): Object { + if (!name) { + return JsLogger; + } + return JsLogger.get(name); +} + +/** + * get the log level + * @param {?string} name - the logger name + * @returns {string} - the log level + */ +function getLogLevel(name?: string): string{ + return getLogger(name).getLevel().name; +} +/** + * sets the logger level + * @param {string} level - the log level + * @param {?string} name - the logger name + * @returns {void} + */ +function setLogLevel(level: string, name?: string): void{ + getLogger(name).setLevel(level); +} +export default getLogger; +export {LOG_LEVEL, getLogLevel, setLogLevel}; diff --git a/yarn.lock b/yarn.lock index 2176a197..a2cae59f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2753,8 +2753,8 @@ jodid25519@^1.0.0: jsbn "~0.1.0" js-logger@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/js-logger/-/js-logger-1.3.0.tgz#de1a1143242710f7ce4da20408348a2a93ebf34d" + version "1.4.1" + resolved "https://registry.yarnpkg.com/js-logger/-/js-logger-1.4.1.tgz#f0230dc5e84e120f213d6e5a6b767a913d290335" js-tokens@^3.0.0: version "3.0.1" From bddec7c32e986ba69fb44708b3b4549685f93718 Mon Sep 17 00:00:00 2001 From: Oren Me Date: Sat, 11 Nov 2017 19:16:23 +0200 Subject: [PATCH 2/9] add tests --- test/src/k-provider/ovp/ovp-provider.spec.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/src/k-provider/ovp/ovp-provider.spec.js b/test/src/k-provider/ovp/ovp-provider.spec.js index 9c330966..64f4b359 100644 --- a/test/src/k-provider/ovp/ovp-provider.spec.js +++ b/test/src/k-provider/ovp/ovp-provider.spec.js @@ -233,3 +233,18 @@ describe('OvpProvider.partnerId:1068292', function () { }); }); +describe('logger', ()=>{ + it('should return the current log level', ()=>{ + const provider = new OvpProvider("xyz", "xyz"); + var currentLogLevel = provider.getLogLevel(); + currentLogLevel.should.equal(provider.LogLevel.ERROR.name); + }); + it('should enable setting the current log level', ()=>{ + const provider = new OvpProvider("xyz", "xyz"); + var currentLogLevel = provider.getLogLevel(); + currentLogLevel.should.equal(provider.LogLevel.ERROR.name); + provider.setLogLevel(provider.LogLevel.WARN); + currentLogLevel = provider.getLogLevel(); + currentLogLevel.should.equal(provider.LogLevel.WARN.name); + }); +}); From a362adfad8301657ce889c0b357486825adb0054 Mon Sep 17 00:00:00 2001 From: Oren Me Date: Sat, 11 Nov 2017 19:50:13 +0200 Subject: [PATCH 3/9] code cleanup --- test/src/k-provider/ovp/ovp-provider.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/src/k-provider/ovp/ovp-provider.spec.js b/test/src/k-provider/ovp/ovp-provider.spec.js index 64f4b359..9f2ec46a 100644 --- a/test/src/k-provider/ovp/ovp-provider.spec.js +++ b/test/src/k-provider/ovp/ovp-provider.spec.js @@ -236,12 +236,12 @@ describe('OvpProvider.partnerId:1068292', function () { describe('logger', ()=>{ it('should return the current log level', ()=>{ const provider = new OvpProvider("xyz", "xyz"); - var currentLogLevel = provider.getLogLevel(); + const currentLogLevel = provider.getLogLevel(); currentLogLevel.should.equal(provider.LogLevel.ERROR.name); }); it('should enable setting the current log level', ()=>{ const provider = new OvpProvider("xyz", "xyz"); - var currentLogLevel = provider.getLogLevel(); + const currentLogLevel = provider.getLogLevel(); currentLogLevel.should.equal(provider.LogLevel.ERROR.name); provider.setLogLevel(provider.LogLevel.WARN); currentLogLevel = provider.getLogLevel(); From cc935535eefd95d430b82c5d8e67214def1835b0 Mon Sep 17 00:00:00 2001 From: Oren Me Date: Sat, 11 Nov 2017 19:51:14 +0200 Subject: [PATCH 4/9] fix lint --- test/src/k-provider/ovp/ovp-provider.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/src/k-provider/ovp/ovp-provider.spec.js b/test/src/k-provider/ovp/ovp-provider.spec.js index 9f2ec46a..9e91603b 100644 --- a/test/src/k-provider/ovp/ovp-provider.spec.js +++ b/test/src/k-provider/ovp/ovp-provider.spec.js @@ -241,7 +241,7 @@ describe('logger', ()=>{ }); it('should enable setting the current log level', ()=>{ const provider = new OvpProvider("xyz", "xyz"); - const currentLogLevel = provider.getLogLevel(); + let currentLogLevel = provider.getLogLevel(); currentLogLevel.should.equal(provider.LogLevel.ERROR.name); provider.setLogLevel(provider.LogLevel.WARN); currentLogLevel = provider.getLogLevel(); From 7fb3c8d7e4786cb7769d94e78e57b082a945c5a1 Mon Sep 17 00:00:00 2001 From: Oren Me Date: Sat, 11 Nov 2017 20:18:59 +0200 Subject: [PATCH 5/9] change API to get and set the logLevel object --- src/k-provider/ovp/ovp-provider.js | 8 ++++---- src/util/logger.js | 12 ++++++------ test/src/k-provider/ovp/ovp-provider.spec.js | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/k-provider/ovp/ovp-provider.js b/src/k-provider/ovp/ovp-provider.js index ab8ddda7..c1220b4e 100644 --- a/src/k-provider/ovp/ovp-provider.js +++ b/src/k-provider/ovp/ovp-provider.js @@ -196,19 +196,19 @@ export class OvpProvider { /** * get the current log level * @param {?string} name - the logger name - * @returns {string} - the log level + * @returns {Object} - the log level */ - getLogLevel(name?: string): string { + getLogLevel(name?: string): Object { return getLogLevel(name); } /** * sets the logger level - * @param {string} level - the log level + * @param {Object} level - the log level * @param {?string} name - the logger name * @returns {void} */ - setLogLevel(level: string, name?: string){ + setLogLevel(level: Object, name?: string){ setLogLevel(level, name); } } diff --git a/src/util/logger.js b/src/util/logger.js index 429b2af5..ec06478e 100644 --- a/src/util/logger.js +++ b/src/util/logger.js @@ -30,19 +30,19 @@ function getLogger(name?: string): Object { /** * get the log level * @param {?string} name - the logger name - * @returns {string} - the log level + * @returns {Object} - the log level */ -function getLogLevel(name?: string): string{ - return getLogger(name).getLevel().name; +function getLogLevel(name?: string): Object{ + return getLogger(name).getLevel(); } - +`` /** * sets the logger level - * @param {string} level - the log level + * @param {Object} level - the log level * @param {?string} name - the logger name * @returns {void} */ -function setLogLevel(level: string, name?: string): void{ +function setLogLevel(level: Object, name?: string): void{ getLogger(name).setLevel(level); } diff --git a/test/src/k-provider/ovp/ovp-provider.spec.js b/test/src/k-provider/ovp/ovp-provider.spec.js index 9e91603b..f210971e 100644 --- a/test/src/k-provider/ovp/ovp-provider.spec.js +++ b/test/src/k-provider/ovp/ovp-provider.spec.js @@ -237,14 +237,14 @@ describe('logger', ()=>{ it('should return the current log level', ()=>{ const provider = new OvpProvider("xyz", "xyz"); const currentLogLevel = provider.getLogLevel(); - currentLogLevel.should.equal(provider.LogLevel.ERROR.name); + currentLogLevel.should.equal(provider.LogLevel.ERROR); }); it('should enable setting the current log level', ()=>{ const provider = new OvpProvider("xyz", "xyz"); let currentLogLevel = provider.getLogLevel(); - currentLogLevel.should.equal(provider.LogLevel.ERROR.name); + currentLogLevel.should.equal(provider.LogLevel.ERROR); provider.setLogLevel(provider.LogLevel.WARN); currentLogLevel = provider.getLogLevel(); - currentLogLevel.should.equal(provider.LogLevel.WARN.name); + currentLogLevel.should.equal(provider.LogLevel.WARN); }); }); From 87bc0dd78a31b4c0199ab6e61b31ae82c4c04938 Mon Sep 17 00:00:00 2001 From: Oren Me Date: Sat, 11 Nov 2017 20:29:04 +0200 Subject: [PATCH 6/9] remove window.PLAYKIT_LOG_LEVEL --- src/util/logger.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/util/logger.js b/src/util/logger.js index ec06478e..1fc82aca 100644 --- a/src/util/logger.js +++ b/src/util/logger.js @@ -11,9 +11,6 @@ const LOG_LEVEL: { [level: string]: Object } = { }; JsLogger.useDefaults({defaultLevel: JsLogger.ERROR}); -if (window.PLAYKIT_LOG_LEVEL && LOG_LEVEL[window.PLAYKIT_LOG_LEVEL]) { - JsLogger.useDefaults({defaultLevel: LOG_LEVEL[window.PLAYKIT_LOG_LEVEL]}); -} /** * get a logger From 95e53fc8b3e5aae278f70f699bd3bb879ae99705 Mon Sep 17 00:00:00 2001 From: Oren Me Date: Sat, 11 Nov 2017 21:28:13 +0200 Subject: [PATCH 7/9] set log level on init --- src/k-provider/ovp/ovp-provider.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/k-provider/ovp/ovp-provider.js b/src/k-provider/ovp/ovp-provider.js index c1220b4e..01d5a863 100644 --- a/src/k-provider/ovp/ovp-provider.js +++ b/src/k-provider/ovp/ovp-provider.js @@ -74,12 +74,16 @@ export class OvpProvider { * @param {number} partnerID The partner ID * @param {string} [ks=""] The provider ks (has empty string as default value) * @param {Object} [config] The provider config(optional) + * @param {string} [logLevel] The provider log level(optional) */ - constructor(pVersion: string, partnerID: number, ks: string = "", config?: Object) { + constructor(pVersion: string, partnerID: number, ks: string = "", config?: Object, logLevel?: string) { this._pVersion = pVersion; this.partnerID = partnerID; this.ks = ks; this._isAnonymous = !this.ks; + if (logLevel && this.LogLevel[logLevel]){ + setLogLevel(this.LogLevel[logLevel]); + } Configuration.set(config); } From 91dafb2990359fa127c82a890f9b6145f1ba29cc Mon Sep 17 00:00:00 2001 From: Oren Me Date: Sun, 12 Nov 2017 18:43:12 +0200 Subject: [PATCH 8/9] change enum notation --- src/k-provider/ovp/ovp-provider.js | 2 +- src/util/logger.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/k-provider/ovp/ovp-provider.js b/src/k-provider/ovp/ovp-provider.js index 01d5a863..8e8cd8b3 100644 --- a/src/k-provider/ovp/ovp-provider.js +++ b/src/k-provider/ovp/ovp-provider.js @@ -1,5 +1,5 @@ //@flow -import getLogger, {setLogLevel, getLogLevel, LOG_LEVEL as LogLevel} from '../../util/logger' +import getLogger, {setLogLevel, getLogLevel, LogLevel} from '../../util/logger' import ProviderParser from './provider-parser' import DataLoaderManager from './loaders/data-loader-manager' import MediaEntryLoader from './loaders/media-entry-loader' diff --git a/src/util/logger.js b/src/util/logger.js index 1fc82aca..b26fdf5d 100644 --- a/src/util/logger.js +++ b/src/util/logger.js @@ -1,7 +1,7 @@ //@flow import * as JsLogger from 'js-logger'; -const LOG_LEVEL: { [level: string]: Object } = { +const LogLevel: { [level: string]: Object } = { "DEBUG": JsLogger.DEBUG, "INFO": JsLogger.INFO, "TIME": JsLogger.TIME, @@ -40,8 +40,9 @@ function getLogLevel(name?: string): Object{ * @returns {void} */ function setLogLevel(level: Object, name?: string): void{ + getLogger(name).setLevel(level); } export default getLogger; -export {LOG_LEVEL, getLogLevel, setLogLevel}; +export {LogLevel, getLogLevel, setLogLevel}; From 87160a8c8955d009d858beb2687244703948aee9 Mon Sep 17 00:00:00 2001 From: Dan Ziv Date: Tue, 14 Nov 2017 18:39:40 +0200 Subject: [PATCH 9/9] beautify --- src/k-provider/ovp/ovp-provider.js | 5 +++-- src/util/logger.js | 6 ++++-- test/src/k-provider/ovp/ovp-provider.spec.js | 7 ++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/k-provider/ovp/ovp-provider.js b/src/k-provider/ovp/ovp-provider.js index 8e8cd8b3..eda24b24 100644 --- a/src/k-provider/ovp/ovp-provider.js +++ b/src/k-provider/ovp/ovp-provider.js @@ -8,6 +8,7 @@ import UiConfigLoader from './loaders/ui-config-loader' import Configuration from './config' import MediaEntry from '../../entities/media-entry' import MediaSources from '../../entities/media-sources' + /** * @constant */ @@ -81,7 +82,7 @@ export class OvpProvider { this.partnerID = partnerID; this.ks = ks; this._isAnonymous = !this.ks; - if (logLevel && this.LogLevel[logLevel]){ + if (logLevel && this.LogLevel[logLevel]) { setLogLevel(this.LogLevel[logLevel]); } Configuration.set(config); @@ -212,7 +213,7 @@ export class OvpProvider { * @param {?string} name - the logger name * @returns {void} */ - setLogLevel(level: Object, name?: string){ + setLogLevel(level: Object, name?: string) { setLogLevel(level, name); } } diff --git a/src/util/logger.js b/src/util/logger.js index b26fdf5d..81a62080 100644 --- a/src/util/logger.js +++ b/src/util/logger.js @@ -29,17 +29,19 @@ function getLogger(name?: string): Object { * @param {?string} name - the logger name * @returns {Object} - the log level */ -function getLogLevel(name?: string): Object{ +function getLogLevel(name?: string): Object { return getLogger(name).getLevel(); } + `` + /** * sets the logger level * @param {Object} level - the log level * @param {?string} name - the logger name * @returns {void} */ -function setLogLevel(level: Object, name?: string): void{ +function setLogLevel(level: Object, name?: string): void { getLogger(name).setLevel(level); } diff --git a/test/src/k-provider/ovp/ovp-provider.spec.js b/test/src/k-provider/ovp/ovp-provider.spec.js index f210971e..8b4ab99a 100644 --- a/test/src/k-provider/ovp/ovp-provider.spec.js +++ b/test/src/k-provider/ovp/ovp-provider.spec.js @@ -233,13 +233,14 @@ describe('OvpProvider.partnerId:1068292', function () { }); }); -describe('logger', ()=>{ - it('should return the current log level', ()=>{ +describe('logger', () => { + it('should return the current log level', () => { const provider = new OvpProvider("xyz", "xyz"); const currentLogLevel = provider.getLogLevel(); currentLogLevel.should.equal(provider.LogLevel.ERROR); }); - it('should enable setting the current log level', ()=>{ + + it('should enable setting the current log level', () => { const provider = new OvpProvider("xyz", "xyz"); let currentLogLevel = provider.getLogLevel(); currentLogLevel.should.equal(provider.LogLevel.ERROR);