feat: enhance logging capabilities with configurable logger

This commit is contained in:
Leandro Costa 2026-01-24 10:54:19 -03:00
parent e548beb8c9
commit d8c3bbf6b6
2 changed files with 8 additions and 6 deletions

View file

@ -1,4 +1,5 @@
import { AxiosRequestConfig } from "axios"; import { AxiosRequestConfig } from "axios";
import { Logger } from "lhisp-logger";
export interface Headers { export interface Headers {
[name: string]: any; [name: string]: any;
@ -23,6 +24,7 @@ export interface LhispOauthClientConstructorParams {
formatAccessToken?: (accessToken?: AccessToken) => string; formatAccessToken?: (accessToken?: AccessToken) => string;
debug?: boolean; debug?: boolean;
timeout?: number; timeout?: number;
logger?: Logger;
} }
export interface ExecutarRequestParams extends AxiosRequestConfig { export interface ExecutarRequestParams extends AxiosRequestConfig {

View file

@ -1,6 +1,6 @@
import axios, { AxiosHeaders, AxiosRequestConfig } from "axios"; import axios, { AxiosHeaders, AxiosRequestConfig } from "axios";
import https from "https"; import https from "https";
import lhLogger from "lhisp-logger"; import logger, { Logger } from "lhisp-logger";
import qs from "querystring"; import qs from "querystring";
import { import {
AccessToken, AccessToken,
@ -13,8 +13,6 @@ import {
LhispOauthClientConstructorParams, LhispOauthClientConstructorParams,
} from "./lhisp-oauth-client.t"; } from "./lhisp-oauth-client.t";
const logger = lhLogger({ name: "lhisp-oauth-client" });
export class LhispOauthClient<iAccessToken extends AccessToken = AccessToken> { export class LhispOauthClient<iAccessToken extends AccessToken = AccessToken> {
protected authUrl: string; protected authUrl: string;
protected apiUrl: string; protected apiUrl: string;
@ -38,6 +36,7 @@ export class LhispOauthClient<iAccessToken extends AccessToken = AccessToken> {
protected sendAuthCredentialsOnRequestBody?: boolean; protected sendAuthCredentialsOnRequestBody?: boolean;
protected timeout: number; protected timeout: number;
protected formatAccessToken?: (accessToken?: iAccessToken) => string; protected formatAccessToken?: (accessToken?: iAccessToken) => string;
private logger: Logger;
constructor(params: LhispOauthClientConstructorParams) { constructor(params: LhispOauthClientConstructorParams) {
if (params.certificado) { if (params.certificado) {
@ -68,6 +67,7 @@ export class LhispOauthClient<iAccessToken extends AccessToken = AccessToken> {
this.sendAuthCredentialsOnRequestBody = params.sendAuthCredentialsOnRequestBody; this.sendAuthCredentialsOnRequestBody = params.sendAuthCredentialsOnRequestBody;
this.formatAccessToken = params.formatAccessToken; this.formatAccessToken = params.formatAccessToken;
this.timeout = params.timeout ? params.timeout : 60000; this.timeout = params.timeout ? params.timeout : 60000;
this.logger = params.logger || logger;
} }
getAuthHeaderValue(): string { getAuthHeaderValue(): string {
@ -131,7 +131,7 @@ export class LhispOauthClient<iAccessToken extends AccessToken = AccessToken> {
}); });
const resp = await axios.request(authRequestOpt); const resp = await axios.request(authRequestOpt);
if (!resp?.data) { if (!resp?.data) {
logger.error({ message: "LhispOauthClient.getAccessToken", resp }); this.logger.error({ message: "LhispOauthClient.getAccessToken", resp });
throw new Error("Resposta inválida ao obter token de acesso."); throw new Error("Resposta inválida ao obter token de acesso.");
} }
this.accessToken = this.buildAccessToken(resp.data); this.accessToken = this.buildAccessToken(resp.data);
@ -139,7 +139,7 @@ export class LhispOauthClient<iAccessToken extends AccessToken = AccessToken> {
this.tokenExpiresIn = this.accessToken?.expires_in || this.tokenCreatedAt + 60000; this.tokenExpiresIn = this.accessToken?.expires_in || this.tokenCreatedAt + 60000;
return this.accessToken; return this.accessToken;
} catch (error) { } catch (error) {
logger.error({ message: "LhispOauthClient.getAccessToken", error }); this.logger.error({ message: "LhispOauthClient.getAccessToken", error });
throw error; throw error;
} }
} }
@ -192,7 +192,7 @@ export class LhispOauthClient<iAccessToken extends AccessToken = AccessToken> {
return response.data; return response.data;
} catch (error) { } catch (error) {
logger.error({ this.logger.error({
message: "LhispOauthClient.executarRequest", message: "LhispOauthClient.executarRequest",
method, method,
url: `${this.apiUrl}${path}`, url: `${this.apiUrl}${path}`,