justinkames / vuejs-logger

Provides customizable logging functionality for Vue.js. Compatible with Vue2.
MIT License
245 stars 50 forks source link

Use vuejs-logger in javascript files #25

Closed njordr closed 5 years ago

njordr commented 5 years ago

Hey

I'm using vue-element-admin in my project. It has an util dir with request.js file in it to make http request easier:

import axios from 'axios'
import store from '@/store'
import { getToken } from '@/utils/auth'

// create an axios instance
const service = axios.create({
  baseURL: process.env.BASE_API,
  timeout: 10000 // request timeout
})

// request interceptor
service.interceptors.request.use(config => {
  // Do something before request is sent
  if (store.getters.token) {
    config.headers['SPYREST-TOKEN'] = getToken()
  }
  return config
}, error => {
  // Do something with request error
  this.$log.error('Request error', error.response.status, error)
  Promise.reject(error)
})

// respone interceptor
service.interceptors.response.use(
  response => response,
  error => {
    this.$log.error('Request error', error.response.status, error)
    if (error.response.status === 401) {
      store.dispatch('FedLogOut').then(() => {
        location.reload()
      })
    } else {
      return Promise.reject(error)
    }
  })

export default service

I tried to use vuejs-logger with this, but I don't have a Vue instance here.

Could you please tell me how to do?

justinkames commented 5 years ago

Hi @njordr,

You can do that like this :

import Vue from 'vue'

function externalFunction() {
   // log from external function
   Vue.$log.debug('log from function outside component.');
}