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.
npm install logger-package-bjThis 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.
- 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
To install the package, run the following command:
```
npm install logger-package-bj
To use the package, follow these steps:
1. Import the package in your application:
`typescript`
import { createAppLogger, requestLogger } from "logger-package-bj";
2. Create a logger instance:
`typescript[${timestamp}] ${level.toUpperCase()}: ${message} ${
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
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",
},
},
});
3. Use the logger instance in your application:
`typescript`
logger.info("This is an info message");
logger.warn("This is a warning message");
logger.error("This is an error message");
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.
-