ov-components:Enhance logging by adding verbose level and updating log calls in TemplateManagerService

master
Carlos Santos 2025-08-19 11:25:56 +02:00
parent 4fb4878342
commit 72697bafa5
3 changed files with 56 additions and 39 deletions

View File

@ -3,6 +3,7 @@
*/ */
export interface ILogger { export interface ILogger {
d(...args: any[]): void; d(...args: any[]): void;
v(...args: any[]): void;
w(...args: any[]): void; w(...args: any[]): void;
e(...args: any[]): void; e(...args: any[]): void;
} }

View File

@ -13,6 +13,7 @@ export class LoggerService implements ILogService {
private LOG_FNS: Function[] = []; private LOG_FNS: Function[] = [];
private MSG_PREFIXES: string[][] = [ private MSG_PREFIXES: string[][] = [
['[', '] DEBUG: '], ['[', '] DEBUG: '],
['[', '] VERBOSE: '],
['[', '] WARN: '], ['[', '] WARN: '],
['[', '] ERROR: '] ['[', '] ERROR: ']
]; ];
@ -24,10 +25,17 @@ export class LoggerService implements ILogService {
private initializeLogger(): void { private initializeLogger(): void {
this.log = window.console; this.log = window.console;
this.LOG_FNS = [this.log.log.bind(this.log), this.log.warn.bind(this.log), this.log.error.bind(this.log)]; this.LOG_FNS = [
this.log.log.bind(this.log),
this.log.debug.bind(this.log),
this.log.warn.bind(this.log),
this.log.error.bind(this.log)
];
} }
private createLoggerFunctions(prefix: string): [(...args: any[]) => void, (...args: any[]) => void, (...args: any[]) => void] { private createLoggerFunctions(
prefix: string
): [(...args: any[]) => void, (...args: any[]) => void, (...args: any[]) => void, (...args: any[]) => void] {
const prodMode = this.globalService.isProduction(); const prodMode = this.globalService.isProduction();
const debugFn = (...args: any[]): void => { const debugFn = (...args: any[]): void => {
@ -37,15 +45,22 @@ export class LoggerService implements ILogService {
} }
}; };
const warnFn = (...args: any[]): void => { const verboseFn = (...args: any[]): void => {
this.LOG_FNS[1](this.MSG_PREFIXES[1][0] + prefix + this.MSG_PREFIXES[1][1], ...args); if (!prodMode) {
// Only log verbose messages in non-production mode and when verbose is enabled
this.LOG_FNS[1](this.MSG_PREFIXES[1][0] + prefix + this.MSG_PREFIXES[1][1], ...args);
}
}; };
const errorFn = (...args: any[]): void => { const warnFn = (...args: any[]): void => {
this.LOG_FNS[2](this.MSG_PREFIXES[2][0] + prefix + this.MSG_PREFIXES[2][1], ...args); this.LOG_FNS[2](this.MSG_PREFIXES[2][0] + prefix + this.MSG_PREFIXES[2][1], ...args);
}; };
return [debugFn, warnFn, errorFn]; const errorFn = (...args: any[]): void => {
this.LOG_FNS[3](this.MSG_PREFIXES[3][0] + prefix + this.MSG_PREFIXES[3][1], ...args);
};
return [debugFn, verboseFn, warnFn, errorFn];
} }
public get(prefix: string): ILogger { public get(prefix: string): ILogger {
@ -55,10 +70,11 @@ export class LoggerService implements ILogService {
} }
// Create new logger functions // Create new logger functions
const [debugFn, warnFn, errorFn] = this.createLoggerFunctions(prefix); const [debugFn, verboseFn, warnFn, errorFn] = this.createLoggerFunctions(prefix);
const logger: ILogger = { const logger: ILogger = {
d: debugFn, d: debugFn,
v: verboseFn,
w: warnFn, w: warnFn,
e: errorFn e: errorFn
}; };

View File

@ -156,7 +156,7 @@ export class TemplateManagerService {
* Sets up all templates based on external directives and default templates * Sets up all templates based on external directives and default templates
*/ */
setupTemplates(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateConfiguration { setupTemplates(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateConfiguration {
this.log.d('Setting up templates...'); this.log.v('Setting up templates...');
const config: TemplateConfiguration = { const config: TemplateConfiguration = {
toolbarTemplate: this.setupToolbarTemplate(externalDirectives, defaultTemplates), toolbarTemplate: this.setupToolbarTemplate(externalDirectives, defaultTemplates),
@ -176,30 +176,30 @@ export class TemplateManagerService {
// Optional templates // Optional templates
if (externalDirectives.toolbarAdditionalButtons) { if (externalDirectives.toolbarAdditionalButtons) {
config.toolbarAdditionalButtonsTemplate = externalDirectives.toolbarAdditionalButtons.template; config.toolbarAdditionalButtonsTemplate = externalDirectives.toolbarAdditionalButtons.template;
this.log.d('Setting EXTERNAL TOOLBAR ADDITIONAL BUTTONS'); this.log.v('Setting EXTERNAL TOOLBAR ADDITIONAL BUTTONS');
} }
if (externalDirectives.toolbarAdditionalPanelButtons) { if (externalDirectives.toolbarAdditionalPanelButtons) {
config.toolbarAdditionalPanelButtonsTemplate = externalDirectives.toolbarAdditionalPanelButtons.template; config.toolbarAdditionalPanelButtonsTemplate = externalDirectives.toolbarAdditionalPanelButtons.template;
this.log.d('Setting EXTERNAL TOOLBAR ADDITIONAL PANEL BUTTONS'); this.log.v('Setting EXTERNAL TOOLBAR ADDITIONAL PANEL BUTTONS');
} }
if (externalDirectives.additionalPanels) { if (externalDirectives.additionalPanels) {
config.additionalPanelsTemplate = externalDirectives.additionalPanels.template; config.additionalPanelsTemplate = externalDirectives.additionalPanels.template;
this.log.d('Setting EXTERNAL ADDITIONAL PANELS'); this.log.v('Setting EXTERNAL ADDITIONAL PANELS');
} }
if (externalDirectives.participantPanelItemElements) { if (externalDirectives.participantPanelItemElements) {
config.participantPanelItemElementsTemplate = externalDirectives.participantPanelItemElements.template; config.participantPanelItemElementsTemplate = externalDirectives.participantPanelItemElements.template;
this.log.d('Setting EXTERNAL PARTICIPANT PANEL ITEM ELEMENTS'); this.log.v('Setting EXTERNAL PARTICIPANT PANEL ITEM ELEMENTS');
} }
if (externalDirectives.layoutAdditionalElements) { if (externalDirectives.layoutAdditionalElements) {
this.log.d('Setting EXTERNAL ADDITIONAL LAYOUT ELEMENTS'); this.log.v('Setting EXTERNAL ADDITIONAL LAYOUT ELEMENTS');
config.layoutAdditionalElementsTemplate = externalDirectives.layoutAdditionalElements.template; config.layoutAdditionalElementsTemplate = externalDirectives.layoutAdditionalElements.template;
} }
this.log.d('Template setup completed', config); this.log.v('Template setup completed', config);
return config; return config;
} }
@ -208,7 +208,7 @@ export class TemplateManagerService {
*/ */
private setupParticipantPanelAfterLocalParticipantTemplate(externalDirectives: ExternalDirectives): TemplateRef<any> | undefined { private setupParticipantPanelAfterLocalParticipantTemplate(externalDirectives: ExternalDirectives): TemplateRef<any> | undefined {
if (externalDirectives.participantPanelAfterLocalParticipant) { if (externalDirectives.participantPanelAfterLocalParticipant) {
this.log.d('Setting EXTERNAL PARTICIPANT PANEL AFTER LOCAL PARTICIPANT'); this.log.v('Setting EXTERNAL PARTICIPANT PANEL AFTER LOCAL PARTICIPANT');
return (externalDirectives.participantPanelAfterLocalParticipant as any).template; return (externalDirectives.participantPanelAfterLocalParticipant as any).template;
} }
return undefined; return undefined;
@ -219,10 +219,10 @@ export class TemplateManagerService {
*/ */
private setupToolbarTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> { private setupToolbarTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> {
if (externalDirectives.toolbar) { if (externalDirectives.toolbar) {
this.log.d('Setting EXTERNAL TOOLBAR'); this.log.v('Setting EXTERNAL TOOLBAR');
return externalDirectives.toolbar.template; return externalDirectives.toolbar.template;
} else { } else {
this.log.d('Setting DEFAULT TOOLBAR'); this.log.v('Setting DEFAULT TOOLBAR');
return defaultTemplates.toolbar; return defaultTemplates.toolbar;
} }
} }
@ -232,10 +232,10 @@ export class TemplateManagerService {
*/ */
private setupPanelTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> { private setupPanelTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> {
if (externalDirectives.panel) { if (externalDirectives.panel) {
this.log.d('Setting EXTERNAL PANEL'); this.log.v('Setting EXTERNAL PANEL');
return externalDirectives.panel.template; return externalDirectives.panel.template;
} else { } else {
this.log.d('Setting DEFAULT PANEL'); this.log.v('Setting DEFAULT PANEL');
return defaultTemplates.panel; return defaultTemplates.panel;
} }
} }
@ -245,10 +245,10 @@ export class TemplateManagerService {
*/ */
private setupLayoutTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> { private setupLayoutTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> {
if (externalDirectives.layout) { if (externalDirectives.layout) {
this.log.d('Setting EXTERNAL LAYOUT'); this.log.v('Setting EXTERNAL LAYOUT');
return externalDirectives.layout.template; return externalDirectives.layout.template;
} else { } else {
this.log.d('Setting DEFAULT LAYOUT'); this.log.v('Setting DEFAULT LAYOUT');
return defaultTemplates.layout; return defaultTemplates.layout;
} }
} }
@ -258,10 +258,10 @@ export class TemplateManagerService {
*/ */
private setupPreJoinTemplate(externalDirectives: ExternalDirectives): TemplateRef<any> | undefined { private setupPreJoinTemplate(externalDirectives: ExternalDirectives): TemplateRef<any> | undefined {
if (externalDirectives.preJoin) { if (externalDirectives.preJoin) {
this.log.d('Setting EXTERNAL PREJOIN'); this.log.v('Setting EXTERNAL PREJOIN');
return externalDirectives.preJoin.template; return externalDirectives.preJoin.template;
} else { } else {
this.log.d('Setting DEFAULT PREJOIN (none)'); this.log.v('Setting DEFAULT PREJOIN (none)');
return undefined; return undefined;
} }
} }
@ -271,10 +271,10 @@ export class TemplateManagerService {
*/ */
private setupChatPanelTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> { private setupChatPanelTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> {
if (externalDirectives.chatPanel) { if (externalDirectives.chatPanel) {
this.log.d('Setting EXTERNAL CHAT PANEL'); this.log.v('Setting EXTERNAL CHAT PANEL');
return externalDirectives.chatPanel.template; return externalDirectives.chatPanel.template;
} else { } else {
this.log.d('Setting DEFAULT CHAT PANEL'); this.log.v('Setting DEFAULT CHAT PANEL');
return defaultTemplates.chatPanel; return defaultTemplates.chatPanel;
} }
} }
@ -284,10 +284,10 @@ export class TemplateManagerService {
*/ */
private setupParticipantsPanelTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> { private setupParticipantsPanelTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> {
if (externalDirectives.participantsPanel) { if (externalDirectives.participantsPanel) {
this.log.d('Setting EXTERNAL PARTICIPANTS PANEL'); this.log.v('Setting EXTERNAL PARTICIPANTS PANEL');
return externalDirectives.participantsPanel.template; return externalDirectives.participantsPanel.template;
} else { } else {
this.log.d('Setting DEFAULT PARTICIPANTS PANEL'); this.log.v('Setting DEFAULT PARTICIPANTS PANEL');
return defaultTemplates.participantsPanel; return defaultTemplates.participantsPanel;
} }
} }
@ -297,10 +297,10 @@ export class TemplateManagerService {
*/ */
private setupActivitiesPanelTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> { private setupActivitiesPanelTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> {
if (externalDirectives.activitiesPanel) { if (externalDirectives.activitiesPanel) {
this.log.d('Setting EXTERNAL ACTIVITIES PANEL'); this.log.v('Setting EXTERNAL ACTIVITIES PANEL');
return externalDirectives.activitiesPanel.template; return externalDirectives.activitiesPanel.template;
} else { } else {
this.log.d('Setting DEFAULT ACTIVITIES PANEL'); this.log.v('Setting DEFAULT ACTIVITIES PANEL');
return defaultTemplates.activitiesPanel; return defaultTemplates.activitiesPanel;
} }
} }
@ -313,10 +313,10 @@ export class TemplateManagerService {
defaultTemplates: DefaultTemplates defaultTemplates: DefaultTemplates
): TemplateRef<any> { ): TemplateRef<any> {
if (externalDirectives.participantPanelItem) { if (externalDirectives.participantPanelItem) {
this.log.d('Setting EXTERNAL PARTICIPANT PANEL ITEM'); this.log.v('Setting EXTERNAL PARTICIPANT PANEL ITEM');
return externalDirectives.participantPanelItem.template; return externalDirectives.participantPanelItem.template;
} else { } else {
this.log.d('Setting DEFAULT PARTICIPANT PANEL ITEM'); this.log.v('Setting DEFAULT PARTICIPANT PANEL ITEM');
return defaultTemplates.participantPanelItem; return defaultTemplates.participantPanelItem;
} }
} }
@ -326,10 +326,10 @@ export class TemplateManagerService {
*/ */
private setupStreamTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> { private setupStreamTemplate(externalDirectives: ExternalDirectives, defaultTemplates: DefaultTemplates): TemplateRef<any> {
if (externalDirectives.stream) { if (externalDirectives.stream) {
this.log.d('Setting EXTERNAL STREAM'); this.log.v('Setting EXTERNAL STREAM');
return externalDirectives.stream.template; return externalDirectives.stream.template;
} else { } else {
this.log.d('Setting DEFAULT STREAM'); this.log.v('Setting DEFAULT STREAM');
return defaultTemplates.stream; return defaultTemplates.stream;
} }
} }
@ -343,7 +343,7 @@ export class TemplateManagerService {
externalActivitiesPanel?: ActivitiesPanelDirective, externalActivitiesPanel?: ActivitiesPanelDirective,
externalAdditionalPanels?: AdditionalPanelsDirective externalAdditionalPanels?: AdditionalPanelsDirective
): PanelTemplateConfiguration { ): PanelTemplateConfiguration {
this.log.d('Setting up panel templates...'); this.log.v('Setting up panel templates...');
return { return {
participantsPanelTemplate: externalParticipantsPanel?.template, participantsPanelTemplate: externalParticipantsPanel?.template,
@ -360,7 +360,7 @@ export class TemplateManagerService {
externalAdditionalButtons?: ToolbarAdditionalButtonsDirective, externalAdditionalButtons?: ToolbarAdditionalButtonsDirective,
externalAdditionalPanelButtons?: ToolbarAdditionalPanelButtonsDirective externalAdditionalPanelButtons?: ToolbarAdditionalPanelButtonsDirective
): ToolbarTemplateConfiguration { ): ToolbarTemplateConfiguration {
this.log.d('Setting up toolbar templates...'); this.log.v('Setting up toolbar templates...');
return { return {
toolbarAdditionalButtonsTemplate: externalAdditionalButtons?.template, toolbarAdditionalButtonsTemplate: externalAdditionalButtons?.template,
@ -375,7 +375,7 @@ export class TemplateManagerService {
externalStream?: StreamDirective, externalStream?: StreamDirective,
externalLayoutAdditionalElements?: LayoutAdditionalElementsDirective externalLayoutAdditionalElements?: LayoutAdditionalElementsDirective
): LayoutTemplateConfiguration { ): LayoutTemplateConfiguration {
this.log.d('Setting up layout templates...'); this.log.v('Setting up layout templates...');
return { return {
layoutStreamTemplate: externalStream?.template, layoutStreamTemplate: externalStream?.template,
@ -391,7 +391,7 @@ export class TemplateManagerService {
defaultParticipantPanelItem?: TemplateRef<any>, defaultParticipantPanelItem?: TemplateRef<any>,
externalParticipantPanelAfterLocalParticipant?: TemplateRef<any> externalParticipantPanelAfterLocalParticipant?: TemplateRef<any>
): ParticipantsPanelTemplateConfiguration { ): ParticipantsPanelTemplateConfiguration {
this.log.d('Setting up participants panel templates...'); this.log.v('Setting up participants panel templates...');
return { return {
participantPanelItemTemplate: externalParticipantPanelItem?.template || defaultParticipantPanelItem, participantPanelItemTemplate: externalParticipantPanelItem?.template || defaultParticipantPanelItem,
@ -405,7 +405,7 @@ export class TemplateManagerService {
setupParticipantPanelItemTemplates( setupParticipantPanelItemTemplates(
externalParticipantPanelItemElements?: ParticipantPanelItemElementsDirective externalParticipantPanelItemElements?: ParticipantPanelItemElementsDirective
): ParticipantPanelItemTemplateConfiguration { ): ParticipantPanelItemTemplateConfiguration {
this.log.d('Setting up participant panel item templates...'); this.log.v('Setting up participant panel item templates...');
return { return {
participantPanelItemElementsTemplate: externalParticipantPanelItemElements?.template participantPanelItemElementsTemplate: externalParticipantPanelItemElements?.template
@ -420,7 +420,7 @@ export class TemplateManagerService {
panelTemplate?: TemplateRef<any>, panelTemplate?: TemplateRef<any>,
layoutTemplate?: TemplateRef<any> layoutTemplate?: TemplateRef<any>
): SessionTemplateConfiguration { ): SessionTemplateConfiguration {
this.log.d('Setting up session templates...'); this.log.v('Setting up session templates...');
return { return {
toolbarTemplate, toolbarTemplate,