logger-package-bj
v1.3.3
Published
This package provides a centralized logging solution for Node.js applications. It allows you to configure and manage logging for your application in a centralized manner, making it easier to manage and maintain your application's logging configuration.
Downloads
58
Readme
Centralized Logging Package for Node.js Applications
This package provides a centralized logging solution for Node.js applications. It allows you to configure and manage logging for your application in a centralized manner, making it easier to manage and maintain your application's logging configuration.
Features
- Centralized logging configuration
- Support for multiple logging transports (console, file, cloudwatch)
- Support for custom log formats
- Support for custom log levels
- Support for custom log metadata
- Support for custom log messages
Installation
To install the package, run the following command:
npm install logger-package-bjUsage
To use the package, follow these steps:
- Import the package in your application:
import { createAppLogger, requestLogger } from "logger-package-bj";- Create a logger instance:
const logger = createAppLogger({
console: {
enabled: true,
options: {
level: "info",
format: format.combine(
format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
format.printf(({ level, message, timestamp, ...meta }) => {
return `[${timestamp}] ${level.toUpperCase()}: ${message} ${
Object.keys(meta).length ? JSON.stringify(meta) : ""
}`;
})
),
},
},
file: {
enabled: true,
options: {
dirname: "logs/application",
filename: "app-%DATE%.log",
datePattern: "YYYY-MM-DD",
maxSize: "20m",
maxFiles: "14d",
zippedArchive: true,
},
},
cloudWatch: {
enabled: true,
options: {
region: "us-east-1",
accessKeyId: "YOUR_ACCESS_KEY_ID",
secretAccessKey: "YOUR_SECRET_ACCESS_KEY",
logGroupName: "YOUR_LOG_GROUP_NAME",
logStreamName: "YOUR_LOG_STREAM_NAME",
},
},
});- Use the logger instance in your application:
logger.info("This is an info message");
logger.warn("This is a warning message");
logger.error("This is an error message");Configuration
The createAppLogger function takes a configuration object as its argument. The configuration object has the following properties:
console: An object with the following properties:enabled: A boolean indicating whether to enable console logging.options: An object with the following properties:level: The log level to use for console logging. Defaults to "info".format: A format function to use for console logging. Defaults to a timestamp and log level format.
file: An object with the following properties:enabled: A boolean indicating whether to enable file logging.options: An object with the following properties:dirname: The directory to store the log files. Defaults to "logs/application".filename: The name of the log file. Defaults to "app-%DATE%.log".datePattern: The date pattern to use for the log file name. Defaults to "YYYY-MM-DD".maxSize: The maximum size of the log file before it is rotated. Defaults to "20m".maxFiles: The maximum number of log files to keep. Defaults to "14d".zippedArchive: A boolean indicating whether to create a zipped archive of the log files. Defaults to true.
cloudWatch: An object with the following properties:enabled: A boolean indicating whether to enable cloudwatch logging.options: An object with the following properties:region: The AWS region to use for cloudwatch logging. Defaults to "us-east-1".accessKeyId: The AWS access key ID to use for cloudwatch logging.secretAccessKey: The AWS secret access key to use for cloudwatch logging.logGroupName: The name of the cloudwatch log group to use for logging.logStreamName: The name of the cloudwatch log stream to use for logging.
