Библиотека Quasar Framework предоставляет мощные
инструменты для организации логирования в приложениях на
Vue.js. Логирование играет ключевую роль в отладке,
мониторинге и анализе поведения приложения. Quasar использует встроенный
механизм Logger, который позволяет гибко управлять выводом
сообщений разного уровня важности, направлять их в консоль и
обрабатывать в соответствии с окружением (разработка или продакшн).
Для использования логирования в Quasar достаточно импортировать
утилиту Logger из пакета Quasar:
import { Logger } from 'quasar'
Создание собственного экземпляра логгера осуществляется через метод
create:
const log = Logger.create('my-app')
Параметры create позволяют настроить:
debug, info, warn,
error),Пример кастомного форматтера:
const log = Logger.create('my-app', {
level: 'debug',
formatter: (entry) => `[${entry.level.toUpperCase()}][${entry.namespace}] ${entry.msg}`
})
Quasar поддерживает следующие уровни логирования, каждый из которых предназначен для определённых задач:
Пример использования уровней:
log.debug('Инициализация компонента', { component: 'Dashboard' })
log.info('Данные успешно загружены', { itemsCount: 42 })
log.warn('Некорректные данные от сервера', { status: 400 })
log.error('Ошибка при сохранении данных', { error: e })
Quasar позволяет задавать глобальный логгер через конфигурацию quasar.conf.js:
framework: {
plugins: ['Notify'],
config: {
logger: {
level: process.env.NODE_ENV === 'development' ? 'debug' : 'warn'
}
}
}
Такой подход обеспечивает автоматическое отключение лишнего логирования в продакшн-сборке, что повышает производительность и безопасность приложения.
Quasar логгер может быть интегрирован напрямую в компоненты Vue:
export default {
name: 'Dashboard',
mounted () {
this.$q.logger.info('Компонент Dashboard смонтирован')
}
}
Для этого в Quasar используется глобальный объект
$q.logger, который автоматически доступен во всех
компонентах и позволяет централизованно управлять выводом сообщений.
Пример фильтрации и кастомного обработчика:
const apiLog = Logger.create('api', {
level: 'info',
handler: (entry) => {
if (entry.level === 'error') {
sendToMonitoringService(entry)
}
}
})
apiLog.error('Ошибка API', { endpoint: '/users', code: 500 })
namespace помогает быстро находить сообщения из
конкретных модулей.console.table, чтобы облегчить анализ.error и направлять
их в внешние системы мониторинга.Эта структура логирования обеспечивает ясность, контроль и масштабируемость приложений на Quasar, облегчая отладку и поддержку больших проектов.