0.5.3 • Published 2 years ago

nx-logger-aws v0.5.3

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

NX-LOGGER

Es una librería para gestionar los logs de aws (aws-lambda).


Instalación

npm i nx-logger-aws

Uso

La librería usa el patron singleton, por ende existe una solo instancia, puede estar inicializada en algún servicio o utils (es solo una recomendación).

…
// CommonJS
const { Logger } = require('nx-logger-aws');
…

ó

…
// ESM
import { Logger } 'nx-logger-aws';
…

Inicializar 

…
const logger = Logger.getInstance({
	owner: '', // *string
	region: ', // *string
	service: '', // *string
	urlClient: '', // *string
});
…

Uso

En el archivo de la Lambda Function, se va a setear el contexto, existen 2 tipos de contexto:

  • setContextLogger: es para eventos HTTP de tipo APIGatewayProxyEvent.
  • setContextSQS: se usa para eventos SQS de SQSEvent.

NOTA: types de aws usados para la librería. (para Typescript)

…
// Lambda Function Contexto HTTP
exports.Handler = async (event: APIGatewayProxyEvent, context: Context) => {
	logger.setContextLogger(event, context);
}
…
…
// Lambda Function Contexto SQS
exports.Handler = async (event: SQSEvent, context: Context) => {
	logger.setContextSQS(event, context);
}
…

La librería disponibiliza 2 métodos para loggear info - errorlog.

Listado de enums para documentar los logs correctamente están disponibles en la librería:

enum LOG_TYPES {
	DYNAMODB_REQ = 'dynamo_call',
	DYNAMODB_RES = 'dynamo_response',
	HTTP_REQUEST = 'http_request',
	SNS_RESPONSE = 'sns_response',
	SQS_RESPONSE = 'sqs_response',
	SQS_REQUEST = 'sqs_call',
	LAMBDA_REQ = 'lambda_call',
}
enum LOG_TAGS {
  DYNAMODB_REQ_TAG = '[DYNAMODB_REQUEST]',
  DYNAMODB_RES_TAG = '[DYNAMODB_RESPONSE]',
  DYNAMODB_ERROR_TAG = '[DYNAMODB_ERROR]',
  HTTP_SUCCESS_TAG = '[SUCCESS_RESPONSE]',
  HTTP_ERROR_TAG = '[CATCH_ERROR]',
  SNS_RES_TAG = '[SNS_RESPONSE]',
  SNS_ERROR_TAG = '[SNS_ERROR]',
  SQS_RES_TAG = '[SQS_RESPONSE]',
  SQS_REQ_TAG = '[SQS_REQUEST]',
  SQS_ERROR_TAG = '[SQS_ERROR]',
  LAMBDA_REQ_TAG = '[LAMBDA_REQUEST]',
}
…
// Log Info
logger.info({
	msg: LOG_TAGS.HTTP_SUCCESS_TAG, // *string
	type: LOG_TYPES.HTTP_REQUEST, // *LOG_TYPES
	request: {}, // object
	response: {}, // object
});
…
…
// Log Error
logger.errorlog({
	statusCode: 500, // number
	error: '', // *string | object
	msg: '', // *string
	type: LOG_TYPES.HTTP_REQUEST, // *LOG_TYPES
});
…
0.5.3

2 years ago

0.5.2

2 years ago

0.5.1

2 years ago

0.5.0

2 years ago

0.4.6-beta.0

2 years ago

0.4.5

2 years ago

0.4.4

2 years ago

0.4.3

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.3.0

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.0

2 years ago