Rediger

Del via


How to collect client logs

The client logs can help when we want to get more details while debugging an issue. To collect client logs, you can use @azure/logger, which is used by WebJS calling SDK internally.

import { setLogLevel, createClientLogger, AzureLogger } from '@azure/logger';
setLogLevel('info');
let logger = createClientLogger('ACS');
const callClient = new CallClient({ logger });
// app logging
logger.info('....');

@azure/logger supports four different log levels:

  • verbose
  • info
  • warning
  • error

For debugging purposes, info level logging is sufficient in most cases.

In the browser environment, @azure/logger outputs logs to the console by default. You can redirect logs by overriding AzureLogger.log method. For more information, see @azure/logger.

Your app might keep logs in memory if it has a 'download log file' feature. If that is the case, you have to set a limit on the log size. Not setting a limit might cause memory issues on long running calls.

Additionally, if you send logs to a remote service, consider mechanisms such as compression and scheduling. If the client has insufficient bandwidth, sending a large amount of log data in a short period of time can affect call quality.