### Install axios-logger Source: https://github.com/hg-pyun/axios-logger/blob/master/README.md Install axios-logger as a development dependency using npm. ```bash $ npm install axios-logger --save-dev ``` -------------------------------- ### Set Global Logging Configuration Source: https://context7.com/hg-pyun/axios-logger/llms.txt Configure application-wide logging defaults. These settings are applied to all logger calls unless overridden by local configuration. Ensure Winston is installed and configured if using it as the custom logger. ```typescript import { setGlobalConfig } from 'axios-logger'; import winston from 'winston'; const logger = winston.createLogger({ level: 'info', transports: [new winston.transports.Console()], }); // Configure globally: use Winston, enable headers & params, add timestamp, custom prefix setGlobalConfig({ prefixText: 'API', dateFormat: 'HH:MM:ss', headers: true, params: true, data: true, status: true, statusText: true, method: true, url: true, logger: logger.info.bind(logger), }); // All subsequent requestLogger / responseLogger / errorLogger calls use these settings // Output: [API][Request] 14:32:05 GET https://api.example.com/users ``` -------------------------------- ### Build Project with npm Source: https://github.com/hg-pyun/axios-logger/blob/master/CONTRIBUTE.md Run this command to build the project. ```bash $ npm run build ``` -------------------------------- ### Test Project with npm Source: https://github.com/hg-pyun/axios-logger/blob/master/CONTRIBUTE.md Execute tests to ensure code quality before merging. ```bash $ npm test ``` -------------------------------- ### Configuration Options Reference Source: https://context7.com/hg-pyun/axios-logger/llms.txt Reference for global and local configuration options. Local configurations for request, response, and error loggers can override global settings for specific interceptors. ```typescript import * as AxiosLogger from 'axios-logger'; import { setGlobalConfig } from 'axios-logger'; // GlobalLogConfig — accepted by setGlobalConfig setGlobalConfig({ method: true, url: true, params: false, data: true, status: true, statusText: true, headers: false, prefixText: 'Axios', dateFormat: false, logger: console.log, }); // RequestLogConfig — local override for requestLogger (subset: no status/statusText) instance.interceptors.request.use((req) => AxiosLogger.requestLogger(req, { method: true, url: true, data: false, headers: true, params: true }) ); // ResponseLogConfig — local override for responseLogger (subset: no method/url) instance.interceptors.response.use((res) => AxiosLogger.responseLogger(res, { status: true, statusText: false, data: true, headers: false }) ); // ErrorLogConfig — local override for errorLogger (same shape as ResponseLogConfig) instance.interceptors.response.use(null, (err) => AxiosLogger.errorLogger(err, { status: true, statusText: true, data: true }) ); ``` -------------------------------- ### Apply Local Configuration Source: https://github.com/hg-pyun/axios-logger/blob/master/README.md Override global configurations by passing a configuration object as the second argument to requestLogger or responseLogger for local, instance-specific settings. ```javascript instance.interceptors.request.use((request) => { // write down your request intercept. return AxiosLogger.requestLogger(request, { prefixText: 'your prefix', dateFormat: 'HH:MM:ss', status: false, headers: true, logger: someLogger.error.bind(this), }); }); ``` -------------------------------- ### Set Global Configuration Source: https://github.com/hg-pyun/axios-logger/blob/master/README.md Configure axios-logger globally using setGlobalConfig to apply settings like prefix, date format, and logger instance to all subsequent logs. ```javascript setGlobalConfig({ prefixText: 'your prefix', dateFormat: 'HH:MM:ss', status: false, headers: true, logger: someLogger.info.bind(this), }); ``` -------------------------------- ### Run Tests in Watch Mode Source: https://github.com/hg-pyun/axios-logger/blob/master/CONTRIBUTE.md Use this command for Test-Driven Development (TDD) to automatically re-run tests on code changes. ```bash $ npm run test:watch ``` -------------------------------- ### Log Axios Responses Source: https://github.com/hg-pyun/axios-logger/blob/master/README.md Use the responseLogger interceptor to log incoming Axios responses. Ensure Axios and AxiosLogger are imported. ```javascript import axios from 'axios'; import * as AxiosLogger from 'axios-logger'; const instance = axios.create(); instance.interceptors.response.use(AxiosLogger.responseLogger); ``` -------------------------------- ### setGlobalConfig Source: https://context7.com/hg-pyun/axios-logger/llms.txt Sets application-wide logging defaults for all logger calls. These defaults can be overridden by local configurations. ```APIDOC ## `setGlobalConfig(config)` — Set global logging configuration Sets application-wide logging defaults applied to all `requestLogger`, `responseLogger`, and `errorLogger` calls. Any property set here is used unless a local config passed directly to a logger explicitly overrides it. Local config always takes precedence over global config. ### Method `setGlobalConfig` ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **config** (object) - Required - An object containing configuration options for global logging. - **prefixText** (string | false) - Optional - Custom prefix string for logs. Defaults to 'Axios'. Set to `false` for no prefix. - **dateFormat** (string | false) - Optional - Timestamp format. Uses node-dateformat syntax. Defaults to `false` (no timestamp). - **headers** (boolean) - Optional - Include HTTP headers in logs. Defaults to `false`. - **params** (boolean) - Optional - Include URL query parameters in logs. Defaults to `false`. - **data** (boolean) - Optional - Include request/response body in logs. Defaults to `true`. - **status** (boolean) - Optional - Include HTTP status code in logs. Defaults to `true`. - **statusText** (boolean) - Optional - Include HTTP status text in logs. Defaults to `true`. - **method** (boolean) - Optional - Include HTTP method in logs. Defaults to `true`. - **url** (boolean) - Optional - Include URL in logs. Defaults to `true`. - **logger** ((text: string) => any) - Optional - Custom logger function. Defaults to `console.log`. ### Request Example ```typescript import { setGlobalConfig } from 'axios-logger'; import winston from 'winston'; const logger = winston.createLogger({ level: 'info', transports: [new winston.transports.Console()], }); setGlobalConfig({ prefixText: 'API', dateFormat: 'HH:MM:ss', headers: true, params: true, data: true, status: true, statusText: true, method: true, url: true, logger: logger.info.bind(logger), }); ``` ### Response This method does not return a value. ``` -------------------------------- ### Compose Custom Response Logger Source: https://github.com/hg-pyun/axios-logger/blob/master/README.md Compose your own response interceptor with the default responseLogger. This allows adding custom logic before or after logging. ```javascript instance.interceptors.response.use((response) => { // write down your response intercept. return AxiosLogger.responseLogger(response); }); ``` -------------------------------- ### Compose Custom Request Logger Source: https://github.com/hg-pyun/axios-logger/blob/master/README.md Compose your own request interceptor with the default requestLogger. This allows adding custom logic before or after logging. ```javascript instance.interceptors.request.use((request) => { // write down your request intercept. return AxiosLogger.requestLogger(request); }); ``` -------------------------------- ### responseLogger(response, config?) Source: https://context7.com/hg-pyun/axios-logger/llms.txt Intercepts Axios responses and logs the HTTP method, URL, HTTP status code and status text, optional headers, and response body. It returns the original response object unchanged. An optional local config can be provided to override global settings. ```APIDOC ## responseLogger(response, config?) ### Description Intercepts Axios responses and logs the HTTP method, URL, HTTP status code and status text, optional headers, and response body. Returns the original response object unchanged. Accepts an optional local config to override global settings. ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```typescript import axios from 'axios'; import * as AxiosLogger from 'axios-logger'; const instance = axios.create({ baseURL: 'https://api.example.com' }); // Basic usage instance.interceptors.response.use(AxiosLogger.responseLogger); // With local config — suppress data, show status only instance.interceptors.response.use((response) => { return AxiosLogger.responseLogger(response, { data: false, status: true, statusText: true, prefixText: 'MyApp', }); }); // Output: [MyApp][Response] GET https://api.example.com/users 200:OK instance.get('/users'); ``` ### Response #### Success Response (200) Returns the original response object unchanged. #### Response Example None provided. ``` -------------------------------- ### Compose Custom Error Logger Source: https://github.com/hg-pyun/axios-logger/blob/master/README.md Compose your own error handling logic with the default errorLogger. This allows custom error processing before or after default logging. ```javascript instance.interceptors.response.use(AxiosLogger.responseLogger, (err) => { // write down your error intercept. return AxiosLogger.errorLogger(err); }); ``` -------------------------------- ### Log Axios Requests Source: https://github.com/hg-pyun/axios-logger/blob/master/README.md Use the requestLogger interceptor to log outgoing Axios requests. Ensure Axios and AxiosLogger are imported. ```javascript import axios from 'axios'; import * as AxiosLogger from 'axios-logger'; const instance = axios.create(); instance.interceptors.request.use(AxiosLogger.requestLogger); ``` -------------------------------- ### requestLogger(request, config?) Source: https://context7.com/hg-pyun/axios-logger/llms.txt Intercepts outgoing Axios requests and logs details such as HTTP method, URL, query parameters, headers, and request body. It returns the original request config to ensure the request proceeds normally. An optional local config object can be provided to override global settings for a specific call. ```APIDOC ## requestLogger(request, config?) ### Description Intercepts outgoing Axios requests and logs the HTTP method, URL, optional query params, headers, and request body. Returns the original request config unchanged so the request proceeds normally. Accepts an optional local config object that overrides global settings for that call only. ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```typescript import axios from 'axios'; import * as AxiosLogger from 'axios-logger'; const instance = axios.create({ baseURL: 'https://api.example.com' }); // Basic usage — attach as interceptor instance.interceptors.request.use(AxiosLogger.requestLogger); // With local config override (headers + params enabled, no prefix) instance.interceptors.request.use((request) => { return AxiosLogger.requestLogger(request, { headers: true, params: true, prefixText: false, dateFormat: 'HH:MM:ss', }); }); // Output: [Axios][Request] GET https://api.example.com/users?role=admin {"name":"Alice"} instance.get('/users', { params: { role: 'admin' } }); ``` ### Response #### Success Response (200) Returns the original request config unchanged. #### Response Example None provided. ``` -------------------------------- ### Log Axios Errors with Axios Logger Source: https://context7.com/hg-pyun/axios-logger/llms.txt Handles errors from Axios requests and responses, logging relevant details like method, URL, and error status. Returns a rejected Promise to ensure errors propagate. Can be composed with custom error handling logic. ```typescript import axios from 'axios'; import * as AxiosLogger from 'axios-logger'; const instance = axios.create({ baseURL: 'https://api.example.com' }); // Attach to both request and response interceptors instance.interceptors.request.use( AxiosLogger.requestLogger, AxiosLogger.errorLogger ); instance.interceptors.response.use( AxiosLogger.responseLogger, AxiosLogger.errorLogger ); // Compose with custom error handling instance.interceptors.response.use( AxiosLogger.responseLogger, (err) => { // custom logic before logging return AxiosLogger.errorLogger(err, { prefixText: 'MyApp' }); } ); // Output on 404: [MyApp][Error] GET https://api.example.com/missing 404:Not Found instance.get('/missing').catch(() => {}); ``` -------------------------------- ### Log Incoming HTTP Responses with Axios Logger Source: https://context7.com/hg-pyun/axios-logger/llms.txt Intercepts Axios responses to log status codes, headers, and bodies. Basic usage logs all details, while a local config can selectively enable or disable logging of specific fields like data or status text. ```typescript import axios from 'axios'; import * as AxiosLogger from 'axios-logger'; const instance = axios.create({ baseURL: 'https://api.example.com' }); // Basic usage instance.interceptors.response.use(AxiosLogger.responseLogger); // With local config — suppress data, show status only instance.interceptors.response.use((response) => { return AxiosLogger.responseLogger(response, { data: false, status: true, statusText: true, prefixText: 'MyApp', }); }); // Output: [MyApp][Response] GET https://api.example.com/users 200:OK instance.get('/users'); ``` -------------------------------- ### errorLogger(error, config?) Source: https://context7.com/hg-pyun/axios-logger/llms.txt Handles Axios errors from both request and response interceptors. It logs the method, URL, and if an HTTP response was received, the status code, status text, and body. It returns a rejected Promise to allow the error to continue propagating through the chain. ```APIDOC ## errorLogger(error, config?) ### Description Handles Axios errors from both request and response interceptors. Logs method, URL, and—if an HTTP response was received—status code, status text, and body. Returns a rejected Promise so the error continues propagating through the chain. ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```typescript import axios from 'axios'; import * as AxiosLogger from 'axios-logger'; const instance = axios.create({ baseURL: 'https://api.example.com' }); // Attach to both request and response interceptors instance.interceptors.request.use( AxiosLogger.requestLogger, AxiosLogger.errorLogger ); instance.interceptors.response.use( AxiosLogger.responseLogger, AxiosLogger.errorLogger ); // Compose with custom error handling instance.interceptors.response.use( AxiosLogger.responseLogger, (err) => { // custom logic before logging return AxiosLogger.errorLogger(err, { prefixText: 'MyApp' }); } ); // Output on 404: [MyApp][Error] GET https://api.example.com/missing 404:Not Found instance.get('/missing').catch(() => {}); ``` ### Response #### Success Response (200) Returns a rejected Promise. #### Response Example None provided. ``` -------------------------------- ### Log Outgoing HTTP Requests with Axios Logger Source: https://context7.com/hg-pyun/axios-logger/llms.txt Intercepts outgoing Axios requests to log details like method, URL, headers, and body. Use basic usage for default logging or provide a local config object to override global settings. ```typescript import axios from 'axios'; import * as AxiosLogger from 'axios-logger'; const instance = axios.create({ baseURL: 'https://api.example.com' }); // Basic usage — attach as interceptor instance.interceptors.request.use(AxiosLogger.requestLogger); // With local config override (headers + params enabled, no prefix) instance.interceptors.request.use((request) => { return AxiosLogger.requestLogger(request, { headers: true, params: true, prefixText: false, dateFormat: 'HH:MM:ss', }); }); // Output: [Axios][Request] GET https://api.example.com/users?role=admin {"name":"Alice"} instance.get('/users', { params: { role: 'admin' } }); ``` -------------------------------- ### Log Axios Errors Source: https://github.com/hg-pyun/axios-logger/blob/master/README.md Inject errorLogger alongside requestLogger or responseLogger to handle and log errors during Axios requests or responses. ```javascript import axios from 'axios'; import * as AxiosLogger from 'axios-logger'; const instance = axios.create(); instance.interceptors.request.use(AxiosLogger.requestLogger, AxiosLogger.errorLogger); instance.interceptors.response.use(AxiosLogger.responseLogger, AxiosLogger.errorLogger); ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.