Skip to content

Commit

Permalink
feat(FEC-9023): more logger options (#247)
Browse files Browse the repository at this point in the history
add configuration logger options.
handler to output logs with custimize function.
option to remove playerVersion from log.
  • Loading branch information
Yuvalke authored Jun 20, 2019
1 parent 75054ea commit b2a57a7
Show file tree
Hide file tree
Showing 8 changed files with 67 additions and 25 deletions.
4 changes: 2 additions & 2 deletions flow-typed/types/kaltura-player-options.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {KPPlaylistObject} from './playlist';

declare type KPOptionsObject = {
targetId: string,
logLevel?: string,
log?: KPLogConfigObject,
disableUserCache?: boolean,
playback?: PKPlaybackConfigObject,
sources?: PKSourcesConfigObject,
Expand All @@ -17,7 +17,7 @@ declare type KPOptionsObject = {

declare type PartialKPOptionsObject = {
targetId: string,
logLevel?: string,
log?: KPLogConfigObject,
disableUserCache?: boolean,
playback?: PKPlaybackConfigObject,
sources?: PKSourcesConfigObject,
Expand Down
3 changes: 3 additions & 0 deletions flow-typed/types/log-level.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
declare type KPLogConfigObject = PKLogConfigObject & {
playerVersion:?boolean
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
"webpack-dev-server": "latest"
},
"dependencies": {
"@playkit-js/playkit-js": "^0.47.0",
"@playkit-js/playkit-js": "^0.48.0",
"@playkit-js/playkit-js-dash": "^1.11.0",
"@playkit-js/playkit-js-hls": "^1.14.0",
"@playkit-js/playkit-js-kava": "^0.8.0",
Expand Down
11 changes: 10 additions & 1 deletion src/common/utils/logger.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ const LogLevel: LogLevelType = {

JsLogger.useDefaults({defaultLevel: JsLogger.ERROR});

/**
* sets the logger handler
* @private
* @param {LogHandlerType} handler - the log level
* @returns {void}
*/
function setLogHandler(handler: LogHandlerType): void {
JsLogger.setHandler((messages, context) => handler(messages, context));
}
/**
* get a logger
* @private
Expand Down Expand Up @@ -50,4 +59,4 @@ function setLogLevel(level: LogLevelObject, name?: string): void {
}

export default getLogger;
export {LogLevel, getLogLevel, setLogLevel};
export {LogLevel, getLogLevel, setLogLevel, setLogHandler};
51 changes: 43 additions & 8 deletions src/common/utils/setup-helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {Env, TextStyle, Utils, setCapabilities, EngineType} from '@playkit-js/pl
import {ValidationErrorType} from './validation-error';
import StorageManager from '../storage/storage-manager';
import type {LogLevelObject} from './logger';
import getLogger, {LogLevel, setLogLevel as _setLogLevel} from './logger';
import getLogger, {LogLevel, setLogHandler, setLogLevel as _setLogLevel} from './logger';
import {configureExternalStreamRedirect} from './external-stream-redirect-helper';
import {RemotePlayerManager} from '../cast/remote-player-manager';
import {RemoteControl} from '../cast/remote-control';
Expand Down Expand Up @@ -175,15 +175,33 @@ function isDebugMode(): boolean {
* @param {KPOptionsObject} options - kaltura player options
* @returns {void}
*/
function setLogLevel(options: KPOptionsObject): void {
function setLogOptions(options: KPOptionsObject): void {
if (!Utils.Object.getPropertyPath(options, 'ui.log')) {
Utils.Object.createPropertyPath(options, 'ui.log', {});
}
if (!Utils.Object.getPropertyPath(options, 'provider.log')) {
Utils.Object.createPropertyPath(options, 'provider.log', {});
}
if (!Utils.Object.getPropertyPath(options, 'log')) {
Utils.Object.createPropertyPath(options, 'log', {});
}

if (options.log && typeof options.log.handler === 'function') {
setLogHandler(options.log.handler);
// $FlowFixMe
options.ui.log.handler = options.provider.log.handler = options.log.handler;
}

let logLevelObj: LogLevelObject = LogLevel.ERROR;
if (isDebugMode()) {
if (options.log && isDebugMode()) {
logLevelObj = LogLevel.DEBUG;
options.logLevel = LogLevel.DEBUG.name;
} else if (options.logLevel && LogLevel[options.logLevel]) {
logLevelObj = LogLevel[options.logLevel];
options.log.level = LogLevel.DEBUG.name;
} else if (options.log && options.log.level && LogLevel[options.log.level]) {
logLevelObj = LogLevel[options.log.level];
}
options.ui.logLevel = options.provider.logLevel = logLevelObj.name;

// $FlowFixMe
options.ui.log.level = options.provider.log.level = logLevelObj.name;
_setLogLevel(logLevelObj);
}

Expand Down Expand Up @@ -371,6 +389,21 @@ function configureBumperDefaultOptions(options: KPOptionsObject): void {
}
}

/**
* print kaltura version to log by configuration
* @private
* @param {KPOptionsObject} options - kaltura player options
* @returns {void}
*/
function printKalturaPlayerVersionToLog(options: PartialKPOptionsObject | LegacyPartialKPOptionsObject): void {
const playerVersion = Utils.Object.getPropertyPath(options, 'log.playerVersion');
if (playerVersion !== false) {
_setLogLevel(LogLevel.INFO);
getLogger().log(`%c ${__NAME__} ${__VERSION__}`, 'color: #ff98f9; font-size: large');
getLogger().log(`%c For more details see ${__PACKAGE_URL__}`, 'color: #ff98f9;');
}
}

/**
* Transform options structure from legacy structure to new structure.
* @private
Expand Down Expand Up @@ -413,6 +446,7 @@ function supportLegacyOptions(options: Object): PartialKPOptionsObject {
['name', 'metadata.name'],
['metadata.poster', 'sources.poster'],
['metadata', 'sources.metadata'],
['logLevel', 'log.level'],
['ui.components.fullscreen.inBrowserFullscreenForIOS', 'playback.inBrowserFullscreen']
];
removePlayerEntry();
Expand Down Expand Up @@ -525,13 +559,14 @@ function maybeSetFullScreenConfig(options: KPOptionsObject): void {
export {
printSetupMessages,
supportLegacyOptions,
printKalturaPlayerVersionToLog,
setStorageConfig,
applyStorageSupport,
applyCastSupport,
setStorageTextStyle,
attachToFirstClick,
validateConfig,
setLogLevel,
setLogOptions,
createKalturaPlayerContainer,
checkNativeHlsSupport,
getDefaultOptions,
Expand Down
7 changes: 0 additions & 7 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// @flow
import PolyfillManager from './common/polyfills/polyfill-manager';
import './common/polyfills/all';
import getLogger, {getLogLevel, LogLevel, setLogLevel} from './common/utils/logger';
// Import core
import * as core from '@playkit-js/playkit-js';
// Import ui
Expand All @@ -28,12 +27,6 @@ declare var __NAME__: string;
declare var __PACKAGE_URL__: string;
declare var __PLAYER_TYPE__: string;

const currentLogLevel = getLogLevel();
setLogLevel(LogLevel.INFO);
getLogger().log(`%c ${__NAME__} ${__VERSION__}`, 'color: #ff98f9; font-size: large');
getLogger().log(`%c For more details see ${__PACKAGE_URL__}`, 'color: #ff98f9;');
setLogLevel(currentLogLevel);

PolyfillManager.installAll();

export {
Expand Down
6 changes: 4 additions & 2 deletions src/setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ import {
applyStorageSupport,
attachToFirstClick,
getDefaultOptions,
printKalturaPlayerVersionToLog,
printSetupMessages,
setLogLevel,
setLogOptions,
setStorageConfig,
setStorageTextStyle,
supportLegacyOptions,
Expand All @@ -22,10 +23,11 @@ import {
* @returns {KalturaPlayer} - The Kaltura Player.
*/
function setup(options: PartialKPOptionsObject | LegacyPartialKPOptionsObject): KalturaPlayer {
printKalturaPlayerVersionToLog(options);
options = supportLegacyOptions(options);
validateConfig(options);
const defaultOptions = getDefaultOptions(options);
setLogLevel(defaultOptions);
setLogOptions(defaultOptions);
printSetupMessages();
evaluatePluginsConfig(defaultOptions.plugins, defaultOptions);
setStorageConfig(defaultOptions);
Expand Down
8 changes: 4 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@
preact-redux "^2.0.1"
redux "^3.6.0"

"@playkit-js/playkit-js@^0.47.0":
version "0.47.0"
resolved "https://registry.yarnpkg.com/@playkit-js/playkit-js/-/playkit-js-0.47.0.tgz#f6f0c52750b0ba9d0d7306d0bf6e4c281f1bb1c6"
integrity sha512-cBxVXf42Fwn8G5nzvwfbgzYSCrdgi7gkoqZdrb1ILTcXbJm2z9GTOnKXRwLNMxNFP6TCQb8ialzIsmELwDj28w==
"@playkit-js/playkit-js@^0.48.0":
version "0.48.0"
resolved "https://registry.yarnpkg.com/@playkit-js/playkit-js/-/playkit-js-0.48.0.tgz#2dd0134d415b09fac29777b93b8f2448326b4c6e"
integrity sha512-6L0xXlCh8jPM0arsQ4nudFqln9glg8nP5rPrQ5ypoIma6IkRclmIp+/QNwxdBlp5LnVeM4NwcKvdi/KfvNUhjA==
dependencies:
js-logger "^1.3.0"
ua-parser-js "^0.7.13"
Expand Down

0 comments on commit b2a57a7

Please sign in to comment.