Comment enregistrer tous les appels axios à partir d'un seul endroit dans le code
j'utilise axios pour une application react et j'aimerais enregistrer tous les appels axios que je fais n'importe où dans l'application. J'utilise déjà une seule instance globale d'axios via la fonction create et je suis capable d'enregistrer une console Générique.journal. Cependant je voudrais plus d'info comme fonction étant appelée, Paramètres,etc.
4 réponses
La meilleure façon de le faire serait un intercepteur. Chaque intercepteur est appelé avant une requête / réponse. Dans ce cas, un intercepteur de journalisation le serait.
axios.interceptors.request.use(request => {
console.log('Starting Request', request)
return request
})
axios.interceptors.response.use(response => {
console.log('Response:', response)
return response
})
ou quelque chose dans ce sens.
Il est bon que vous soyez à l'aide d'une nouvelle instance de l'axios:
const api = axios.create({
timeout: 1000
})
de Cette façon, vous pouvez appeler
api.interceptors[...]
Vous pouvez essayer d'envelopper le axios.request
fonction dans une promesse.
function loggedRequest(config) {
return new Promise((resolve, reject) => {
axios.request(config)
.then((res) => {
// log success, config, res here
resolve(res);
})
.catch(err => {
// same, log whatever you want here
reject(err);
})
})
}
On dirait que vous pouvez intercepter toutes les requêtes à l'aide d'un "interceptor", et connectez-vous à l'intérieur de celui-ci: https://github.com/mzabriskie/axios#interceptors
Utiliser axios-debug-log
npm install --save axios-debug-log
require('axios-debug-log')
avant tout appel d'axios- Définir la variable d'environnement
DEBUG=axios
Par défaut, vous verrez journaux comme suit:
axios POST /api/auth/login +0ms
axios 200 (POST http://localhost:8080/api/auth/login) +125ms
axios POST /api/foo +0ms
axios 200 (POST http://localhost:8080/api/foo) +15ms
reportez-vous à la documentation pour les options de configuration et de personnalisation.