https://github.com/nekonomokochan/aws-lambda-node-logger
Logger that can be used with AWS Lambda
https://github.com/nekonomokochan/aws-lambda-node-logger
aws-lambda logger logging node-module nodejs serverless
Last synced: 11 months ago
JSON representation
Logger that can be used with AWS Lambda
- Host: GitHub
- URL: https://github.com/nekonomokochan/aws-lambda-node-logger
- Owner: nekonomokochan
- License: mit
- Created: 2017-12-10T17:46:24.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-02-27T23:22:03.000Z (about 3 years ago)
- Last Synced: 2025-04-30T05:18:20.814Z (12 months ago)
- Topics: aws-lambda, logger, logging, node-module, nodejs, serverless
- Language: TypeScript
- Size: 2.6 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# aws-lambda-node-logger
[](https://badge.fury.io/js/%40nekonomokochan%2Faws-lambda-node-logger)
[](https://travis-ci.org/nekonomokochan/aws-lambda-node-logger)
[](https://coveralls.io/github/nekonomokochan/aws-lambda-node-logger)
[](https://opensource.org/licenses/MIT)
Logging library for AWS Lambda
## Getting Started
### Install npm package
### `yarn`
`yarn add @nekonomokochan/aws-lambda-node-logger`
### `npm`
`npm install --save @nekonomokochan/aws-lambda-node-logger`
## How To Use
### Use With TypeScript
```typescript
import * as lambda from "aws-lambda";
import { LambdaLoggerFactory, LogLevel } from "@nekonomokochan/aws-lambda-node-logger";
export const tsTest = async (event: lambda.APIGatewayEvent, context: lambda.Context, callback: lambda.Callback) => {
const response = {
statusCode: 200,
body: JSON.stringify({
message: "TypeScript Test",
input: event,
}),
};
const error = new Error("TypeScript Error Test");
const lambdaLogger = LambdaLoggerFactory.create(
LogLevel.DEBUG,
extractSlackTokenFromEnv(),
extractSlackChannelFromEnv()
);
await lambdaLogger.error(error, true);
await lambdaLogger.debug(context, true);
callback(undefined, response);
};
/**
* @return {string}
*/
const extractSlackTokenFromEnv = (): string => {
const slackToken = process.env.AWS_LAMBDA_NODE_LOGGER_SLACK_TOKEN;
if (typeof slackToken === "string") {
return slackToken;
}
return "";
};
/**
* @return {string}
*/
const extractSlackChannelFromEnv = (): string => {
const slackChannel = process.env.AWS_LAMBDA_NODE_LOGGER_SLACK_CHANNEL;
if (typeof slackChannel === "string") {
return slackChannel;
}
return "";
};
```
This code is output as follows.
```
START RequestId: 1e46b449-6571-11e8-8af3-e7d42a6dbde1 Version: $LATEST
2018-06-01 16:55:14.864 (+09:00) 1e46b449-6571-11e8-8af3-e7d42a6dbde1 ERROR
Error: TypeScript Error Test
at exports.tsTest (/var/task/src/handler.ts:16:17)
at invoke (/var/runtime/node_modules/awslambda/index.js:286:20)
at InvokeManager.start (/var/runtime/node_modules/awslambda/index.js:151:9)
2018-06-01 16:55:14.864 (+09:00) 1e46b449-6571-11e8-8af3-e7d42a6dbde1 DEBUG
{ callbackWaitsForEmptyEventLoop: [Getter/Setter],
done: [Function: done],
succeed: [Function: succeed],
fail: [Function: fail],
logGroupName: '/aws/lambda/aws-lambda-node-logger-test-dev-tsTest',
logStreamName: '2018/06/01/[$LATEST]66e583f2888346038abb3c08df758232',
functionName: 'aws-lambda-node-logger-test-dev-tsTest',
memoryLimitInMB: '1024',
functionVersion: '$LATEST',
getRemainingTimeInMillis: [Function: getRemainingTimeInMillis],
invokeid: '1e46b449-6571-11e8-8af3-e7d42a6dbde1',
awsRequestId: '1e46b449-6571-11e8-8af3-e7d42a6dbde1',
invokedFunctionArn: 'arn:aws:lambda:ap-northeast-1:999999999999:function:aws-lambda-node-logger-test-dev-tsTest' }
END RequestId: 1e46b449-6571-11e8-8af3-e7d42a6dbde1
REPORT RequestId: 1e46b449-6571-11e8-8af3-e7d42a6dbde1 Duration: 0.94 ms Billed Duration: 100 ms Memory Size: 1024 MB Max Memory Used: 22 MB
```
### Use With JavaScript
```javascript
"use strict";
const awsLambdaNodeLogger = require("@nekonomokochan/aws-lambda-node-logger");
module.exports.jsTest = async (event, context, callback) => {
const response = {
statusCode: 200,
body: JSON.stringify({
message: "JavaScript Test",
input: event,
}),
};
const error = new Error("JavaScript Error Test");
const lambdaLogger = awsLambdaNodeLogger.LambdaLoggerFactory.create(
awsLambdaNodeLogger.LogLevel.DEBUG,
extractSlackTokenFromEnv(),
extractSlackChannelFromEnv()
);
await lambdaLogger.debug(response, true);
await lambdaLogger.error(error, true);
callback(null, response);
};
/**
* @return {string}
*/
const extractSlackTokenFromEnv = () => {
const slackToken = process.env.AWS_LAMBDA_NODE_LOGGER_SLACK_TOKEN;
if (typeof slackToken === "string") {
return slackToken;
}
return "";
};
/**
* @return {string}
*/
const extractSlackChannelFromEnv = () => {
const slackChannel = process.env.AWS_LAMBDA_NODE_LOGGER_SLACK_CHANNEL;
if (typeof slackChannel === "string") {
return slackChannel;
}
return "";
};
```
output is the same as TypeScript.
## License
MIT