LogService
-
class
wvc.LogService() Stateless log service that bridges the HOOPS Web Viewer with external log consumers.
The service intercepts viewer callbacks (errors, warnings, timeouts, etc.) and normalizes them into
LogEntryobjects dispatched ashoops-log-service-entrycustom events. It does not store log entries — consumers subscribe to events and decide how to persist or display them.The service can also be used independently of the web viewer to emit application-level log entries via the
log,debug,info,warn, anderrormethods. Custom log levels are supported through thelogmethod by passing any string as thelevelfield.The callback map can be replaced at runtime to customize which viewer events are captured and how they are translated into log entries.
Examples
const logService = new LogService(webViewer); logService.addEventListener('hoops-log-service-entry', (e) => { const entry = e.detail; showSnackbar(entry.level, entry.message); }); // Log application-level messages (no web viewer required) logService.info('User opened settings panel'); // Use a custom log level logService.log({ level: 'trace', message: 'Entered rendering loop', context: { fps: 60 } });
Events
hoops-log-service-entry
Emitted for every log entry with anLogEntrydetail payloadhoops-log-service-reset
Emitted when the web viewer instance is changed
Constructors
-
wvc.LogService.constructor() - LogService(webViewer: IWebViewer):
LogServiceConstructs a new LogService instance.
Parameters
webViewer: IWebViewer
Optional web viewer instance to bind to immediatelyReturns:
LogServiceExamples
// Create with immediate binding const logService = new LogService(viewer); // Create without binding (can be set later) const logService = new LogService(); logService.webViewer = viewer;
Properties
-
wvc.LogService.serviceName readonly
serviceName: “LogService”The service identifier used for registry lookup.
Accessors
-
wvc.LogService.callbackMap() - get callbackMap(): Readonly
Gets the current callback map registered on the web viewer.
Returns: Readonly
A read-only reference to the active callback mapset callbackMap(callbackMap: CallbackMap): voidReplaces the callback map used to intercept web viewer events.
Unbinds the previous map and binds the new one if a web viewer is set.
Parameters
callbackMap: CallbackMap
The new callback map to registerReturns: void
-
wvc.LogService.webViewer() - get webViewer(): (undefined | IWebViewer)
Gets the current web viewer instance.
Returns: (undefined | IWebViewer)
The web viewer instance, or undefined if not setset webViewer(webViewer: (undefined | IWebViewer)): voidSets the web viewer instance.
Unbinds from the previous viewer (if any), updates the reference, and binds to the new viewer. Dispatches a
hoops-log-service-resetevent on change.Parameters
webViewer: (undefined | IWebViewer)
The new web viewer instance, or undefined to unbindReturns: void
Events
hoops-log-service-reset
When the web viewer reference changes
Methods
-
static wvc.LogService.getDefaultCallbackMap() static
getDefaultCallbackMap(logger:LogService): CallbackMapCreates the default callback map that translates web viewer events into log entries.
Handles:
info,missingModel,modelLoadFailure,timeout,timeoutWarning,webGlContextLost,websocketConnectionClosed, andXHRonerror.Parameters
logger:
LogServiceThe LogService instance used to emit log entriesReturns: CallbackMap
A CallbackMap suitable for registration on a web viewer
-
wvc.LogService.debug() - debug(message: string, context: Record): void
Emits a debug-level log entry.
Parameters
message: string
Human-readable debug messagecontext: Record
Optional structured context for additional metadataReturns: void
-
wvc.LogService.error() - error(message: string, context: Record): void
Emits an error-level log entry.
Parameters
message: string
Human-readable error messagecontext: Record
Optional structured context for additional metadataReturns: void
-
wvc.LogService.info() - info(message: string, context: Record): void
Emits an info-level log entry.
Parameters
message: string
Human-readable informational messagecontext: Record
Optional structured context for additional metadataReturns: void
-
wvc.LogService.log() - log(entry: Omit): void
Emits a log entry event with an automatically generated timestamp.
Parameters
entry: Omit
Log entry without the timestamp fieldReturns: void
Events
hoops-log-service-entry
Dispatched with the completeLogEntryas detail
-
wvc.LogService.warn() - warn(message: string, context: Record): void
Emits a warn-level log entry.
Parameters
message: string
Human-readable warning messagecontext: Record
Optional structured context for additional metadataReturns: void