@kevboutin/azure-middy-logger
v0.2.14
Published
Azure logging middleware for the azure-middy framework
Maintainers
Readme
azure-middy-logger
Logger middleware for the azure-middy framework, the Node.js middleware engine for Azure functions.
Install
To install the logger middleware, you can use NPM:
npm install --save @kevboutin/azure-middy-loggerPrerequisites
- Node.js >= 18
- An Azure Function App
Usage
The middleware provides logging capabilities for your Azure Functions using the azure-function-log-intercept library.
JavaScript (CommonJS)
const { app } = require("@azure/functions");
const middy = require("@kevboutin/azure-middy-core");
const loggerMiddleware = require("@kevboutin/azure-middy-logger");
// Your handler
const baseHandler = async (req, context) => {
// Your business logic here
// Logging is automatically handled by the middleware
return {
body: JSON.stringify({ message: "Success" }),
};
};
// Wrap handler with middy
const handler = middy(baseHandler).use(loggerMiddleware());
module.exports = { handler };
app.http("yourFunction", {
route: "your-route",
methods: ["GET"],
authLevel: "anonymous",
handler: handler,
});TypeScript
import { app } from "@azure/functions";
import middy from "@kevboutin/azure-middy-core";
import { loggerMiddleware } from "@kevboutin/azure-middy-logger";
import type {
AzureFunctionContext,
AzureFunctionRequest,
} from "@kevboutin/azure-middy-types";
// Your handler
const baseHandler = async (
req: AzureFunctionRequest,
context: AzureFunctionContext,
) => {
// Your business logic here
// Logging is automatically handled by the middleware
context.log("Processing request");
context.info("Request details:", {
method: req["method"],
url: req["url"],
});
return {
body: JSON.stringify({ message: "Success" }),
};
};
// Wrap handler with middy
const handler = middy(baseHandler).use(loggerMiddleware());
export { handler };
app.http("yourFunction", {
route: "your-route",
methods: ["GET"],
authLevel: "anonymous",
handler: handler,
});TypeScript Support
This package includes full TypeScript support with:
- Type Definitions: Complete type definitions for all logging interfaces and functions
- Type Safety: Full type checking for request and context objects
- IntelliSense: Enhanced IDE support with autocomplete and type hints
Available Types
import { LoggerMiddleware } from "@kevboutin/azure-middy-logger";
import type {
AzureFunctionContext,
AzureFunctionRequest,
} from "@kevboutin/azure-middy-types";TypeScript Configuration
To use TypeScript with this package, ensure your tsconfig.json includes:
{
"compilerOptions": {
"esModuleInterop": true,
"moduleResolution": "node"
}
}How it works
The logger middleware uses the azure-function-log-intercept library to intercept and handle logging in your Azure Functions. It automatically:
- Intercepts the Azure Function context
- Handles log routing
- Ensures proper log formatting
- Maintains context across async operations
Documentation and examples
For more documentation and examples, refer to the main Azure-middy monorepo on GitHub.
Contributing
Everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests.
License
Licensed under MIT License. Copyright (c) 2024 Kevin Boutin and the Azure-Middy team.
