ONNX Runtime Web (ORT Web) предоставляет механизм логирования, позволяющий отслеживать внутренние процессы работы движка и управлять объемом выводимой информации. Логирование играет ключевую роль при отладке моделей, оптимизации производительности и диагностике ошибок в браузерных или Node.js-приложениях.
Для инициализации среды ONNX Runtime Web используется объект
OrtEnv, который принимает параметры конфигурации
логирования. Основные опции:
const env = new ort.Env({
loggingLevel: 'warning',
logId: 'MyAppLogger'
});
ONNX Runtime Web поддерживает следующие уровни severity, перечисленные в порядке возрастания детализации:
Флаги логирования определяют, какие категории сообщений будут активны
для конкретного экземпляра среды. В ONNX Runtime Web они задаются при
создании OrtEnv или сессии:
const env = new ort.Env({
loggingLevel: 'info',
logId: 'SessionLogger'
});
Дополнительно можно изменять уровень логирования динамически через
метод setLoggingLevel:
env.setLoggingLevel('verbose');
Это полезно, когда необходимо включить детальное логирование только в определенные моменты работы приложения, например, при отладке проблем с конкретной моделью.
При загрузке модели через ort.InferenceSession сообщения
будут выводиться в соответствии с заданным уровнем severity:
const session = await ort.InferenceSession.create('model.onnx', {
executionProviders: ['wasm'],
env
});
Если уровень задан как info, будут отображены
сообщения о:
При уровне verbose дополнительно будут
выводиться:
verbose или info для понимания работы модели и
выявления узких мест.warning или error, чтобы лог не засорялся
подробными внутренними сообщениями, но фиксировал критические
события.error или fatal, чтобы
минимизировать накладные расходы на логирование.Логирование на высоких уровнях детальности может существенно замедлять выполнение сессий, особенно при работе с большими моделями и большим числом запросов. Поэтому важно:
verbose в
продуктивной среде;logId) для
фильтрации сообщений от различных компонентов.ONNX Runtime Web поддерживает интеграцию с системами стороннего
логирования через перехватчики сообщений. Метод setLogger
позволяет перенаправлять сообщения ORT в собственный обработчик:
env.setLogger((level, message) => {
console.log(`[ORT-${level}] ${message}`);
});
level соответствует уровню severity
(verbose, info, warning,
error, fatal);message — текст сообщения, сгенерированного
движком.Это позволяет объединять логирование ONNX Runtime Web с уже существующими системами мониторинга и аналитики приложений.