Extracting a Logger Service
Menyederhanakan coding log sentry
buat file baru di dalam folder Services dengan nama LogService.js
import * as Sentry from "@sentry/react";
import { BrowserTracing } from "@sentry/tracing";
function init() {
Sentry.init({
dsn: "https://[email protected]/6479078",
integrations: [new BrowserTracing()],
// Set tracesSampleRate to 1.0 to capture 100%
// of transactions for performance monitoring.
// We recommend adjusting this value in production
tracesSampleRate: 1.0,
});
}
function log(error) {
Sentry.captureException(error);
}
export default {
init,
log
}
index.js
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import reportWebVitals from './reportWebVitals';
import logger from './Services/LogService';
import './index.css';
import "bootstrap/dist/css/bootstrap.css"
logger.init();
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
HttpService.js
import axios from 'axios';
import { toast } from 'react-toastify';
import logger from './LogService';
axios.interceptors.response.use(null, error => {
const expectedError = error.response && error.response.status >= 400 && error.response.status < 500
if (!expectedError) {
logger.log(error)
toast.error('Something failed while deleting a post!');
}
return Promise.reject(error);
})
export default {
get: axios.get,
post: axios.post,
put: axios.put,
delete: axios.delete
}
Last updated
Was this helpful?